99#include " hermes/SourceMap/SourceMapGenerator.h"
1010#include " hermes/SourceMap/SourceMapParser.h"
1111#include " hermes/Support/Base64vlq.h"
12+ #include " hermes/Support/SimpleDiagHandler.h"
1213
1314#include " llvh/Support/MemoryBuffer.h"
1415#include " llvh/Support/raw_ostream.h"
@@ -151,7 +152,9 @@ TEST(SourceMap, Basic) {
151152 OS .str (),
152153 R"#( {"version":3,"sources":["file1","file2"],"mappings":"AAAC,EACA,CACA,C,CAAC;ACGI,CACJ,EAAC,EACF;","x_hermes_function_offsets":{"0":[20,23,50,789],"1":[1,255,300,500]}})#" );
153154
154- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (storage);
155+ SourceErrorManager sm;
156+ SimpleDiagHandlerRAII diagHandler (sm);
157+ std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (storage, sm);
155158 for (uint32_t line = 0 ; line < sizeof (segmentsList) / sizeof (segmentsList[0 ]);
156159 ++line) {
157160 const auto &segments = segmentsList[line];
@@ -163,7 +166,10 @@ TEST(SourceMap, Basic) {
163166}
164167
165168TEST (SourceMap, InvalidJsonMapTest) {
166- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (InvalidJsonMap);
169+ SourceErrorManager sm;
170+ SimpleDiagHandlerRAII diagHandler (sm);
171+ std::unique_ptr<SourceMap> sourceMap =
172+ SourceMapParser::parse (InvalidJsonMap, sm);
167173 EXPECT_TRUE (sourceMap == nullptr );
168174};
169175
@@ -172,8 +178,10 @@ TEST(SourceMap, InvalidJsonMapTest) {
172178TEST (SourceMap, SourcesField) {
173179 auto verifySources = [](const char *sourceMapContent,
174180 const std::vector<std::string> &expected) {
181+ SourceErrorManager sm;
182+ SimpleDiagHandlerRAII diagHandler (sm);
175183 std::unique_ptr<SourceMap> sourceMap =
176- SourceMapParser::parse (sourceMapContent);
184+ SourceMapParser::parse (sourceMapContent, sm );
177185 std::vector<std::string> sources = sourceMap->getAllFullPathSources ();
178186 EXPECT_EQ (sources.size (), expected.size ());
179187 for (uint32_t i = 0 ; i < expected.size (); ++i) {
@@ -188,7 +196,9 @@ TEST(SourceMap, SourcesField) {
188196// / "test that the source root is reflected in a mapping's source field" from
189197// / https://github.com/mozilla/source-map/blob/master/test/test-source-map-consumer.js
190198TEST (SourceMap, SourceRoot) {
191- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap);
199+ SourceErrorManager sm;
200+ SimpleDiagHandlerRAII diagHandler (sm);
201+ std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap, sm);
192202
193203 llvh::Optional<SourceMapTextLocation> locOpt =
194204 sourceMap->getLocationForAddress (2 , 2 );
@@ -200,7 +210,7 @@ TEST(SourceMap, SourceRoot) {
200210 EXPECT_EQ (locOpt.getValue ().fileName , " /the/root/one.js" );
201211
202212 std::unique_ptr<SourceMap> sourceMap2 =
203- SourceMapParser::parse (TestMapNoSourceRoot);
213+ SourceMapParser::parse (TestMapNoSourceRoot, sm );
204214
205215 locOpt = sourceMap2->getLocationForAddress (2 , 2 );
206216 EXPECT_TRUE (locOpt.hasValue ());
@@ -211,7 +221,7 @@ TEST(SourceMap, SourceRoot) {
211221 EXPECT_EQ (locOpt.getValue ().fileName , " one.js" );
212222
213223 std::unique_ptr<SourceMap> sourceMap3 =
214- SourceMapParser::parse (TestMapEmptySourceRoot);
224+ SourceMapParser::parse (TestMapEmptySourceRoot, sm );
215225
216226 locOpt = sourceMap3->getLocationForAddress (2 , 2 );
217227 EXPECT_TRUE (locOpt.hasValue ());
@@ -225,7 +235,9 @@ TEST(SourceMap, SourceRoot) {
225235// / "test mapping tokens back exactly" from
226236// / https://github.com/mozilla/source-map/blob/master/test/test-source-map-consumer.js
227237TEST (SourceMap, ExactMappings) {
228- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap);
238+ SourceErrorManager sm;
239+ SimpleDiagHandlerRAII diagHandler (sm);
240+ std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap, sm);
229241
230242 std::vector<std::string> sources = {" /the/root/one.js" , " /the/root/two.js" };
231243
@@ -257,7 +269,9 @@ TEST(SourceMap, ExactMappings) {
257269// / "test mapping tokens fuzzy" from
258270// / https://github.com/mozilla/source-map/blob/master/test/test-source-map-consumer.js
259271TEST (SourceMap, FuzzyMappings) {
260- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap);
272+ SourceErrorManager sm;
273+ SimpleDiagHandlerRAII diagHandler (sm);
274+ std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (TestMap, sm);
261275
262276 std::vector<std::string> sources = {" /the/root/one.js" , " /the/root/two.js" };
263277
@@ -268,12 +282,15 @@ TEST(SourceMap, FuzzyMappings) {
268282
269283// / Test to make sure we can parse mappings with no represented location
270284TEST (SourceMap, NoRepresentedLocation) {
285+ SourceErrorManager sm;
286+ SimpleDiagHandlerRAII diagHandler (sm);
271287 std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (
272288 R"#( {
273289 "version": 3,
274290 "sources": ["a.js", "b.js"],
275291 "mappings": "CACC,E,G;A,A,CCCC"
276- })#" );
292+ })#" ,
293+ sm);
277294
278295 std::vector<std::string> sources = {" a.js" , " b.js" };
279296
@@ -329,8 +346,10 @@ TEST(SourceMap, MergedWithInputSourceMaps) {
329346 })#" ;
330347
331348 std::vector<std::unique_ptr<SourceMap>> inputSourceMaps{};
332- inputSourceMaps.push_back (SourceMapParser::parse (file1MapJson));
333- inputSourceMaps.push_back (SourceMapParser::parse (file2MapJson));
349+ SourceErrorManager sm;
350+ SimpleDiagHandlerRAII diagHandler (sm);
351+ inputSourceMaps.push_back (SourceMapParser::parse (file1MapJson, sm));
352+ inputSourceMaps.push_back (SourceMapParser::parse (file2MapJson, sm));
334353
335354 std::vector<std::string> sources = {" file1" , " file2" };
336355 SourceMap::SegmentList segments = {
@@ -374,7 +393,7 @@ TEST(SourceMap, MergedWithInputSourceMaps) {
374393 R"#( {"version":3,"sources":["file1orig","\/foo\/file2orig"],)#"
375394 R"#( "mappings":"A,EAAA,CAAA,C,C,C,CCCA,CAAA,CACC;"})#" );
376395
377- std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (storage);
396+ std::unique_ptr<SourceMap> sourceMap = SourceMapParser::parse (storage, sm );
378397 for (uint32_t i = 0 ; i < expectedSegments.size (); ++i) {
379398 verifySegment (
380399 *sourceMap, /* generatedLine*/ 1 , expectedSources, expectedSegments[i]);
@@ -438,8 +457,10 @@ TEST(SourceMap, PropagateFbMetadataFromInputs) {
438457 }, 42])#" );
439458
440459 std::vector<std::unique_ptr<SourceMap>> inputSourceMaps{};
441- inputSourceMaps.push_back (SourceMapParser::parse (file1MapJson));
442- inputSourceMaps.push_back (SourceMapParser::parse (file2MapJson));
460+ SourceErrorManager sm;
461+ SimpleDiagHandlerRAII diagHandler (sm);
462+ inputSourceMaps.push_back (SourceMapParser::parse (file1MapJson, sm));
463+ inputSourceMaps.push_back (SourceMapParser::parse (file2MapJson, sm));
443464
444465 SourceMap::SegmentList segments = {
445466 loc (0 , 0 , 1 , 0 ), // addr 1:0 -> file1:1:0 (unmapped in file1orig)
@@ -500,8 +521,10 @@ TEST(SourceMap, GenerateWithFbMetadata) {
500521
501522// / Test to make sure we can properly parse empty lines.
502523TEST (SourceMap, EmptyLines) {
524+ SourceErrorManager sm;
525+ SimpleDiagHandlerRAII diagHandler (sm);
503526 std::unique_ptr<SourceMap> sourceMap =
504- SourceMapParser::parse (TestMapEmptyLines);
527+ SourceMapParser::parse (TestMapEmptyLines, sm );
505528
506529 std::vector<std::string> sources = {" one.js" , " two.js" };
507530
0 commit comments