From 56fe5a5c333a25b0f07b09afbf37929a78f4fc51 Mon Sep 17 00:00:00 2001 From: Sebastian Turner Date: Tue, 20 Oct 2026 05:32:25 -0700 Subject: [PATCH] Pass sourceMapUrl through in SourceMapConsumer.fromSourceMap Signed-off-by: Sebastian Turner --- lib/source-map-consumer.js | 2 +- test/test-source-map-consumer.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/source-map-consumer.js b/lib/source-map-consumer.js index 17ef92b1..f5f96460 100644 --- a/lib/source-map-consumer.js +++ b/lib/source-map-consumer.js @@ -283,7 +283,7 @@ class BasicSourceMapConsumer extends SourceMapConsumer { * @returns BasicSourceMapConsumer */ static fromSourceMap(aSourceMap, aSourceMapURL) { - return new BasicSourceMapConsumer(aSourceMap.toString()); + return new BasicSourceMapConsumer(aSourceMap.toString(), aSourceMapURL); } get sources() { diff --git a/test/test-source-map-consumer.js b/test/test-source-map-consumer.js index 8cf50988..1f1e913d 100644 --- a/test/test-source-map-consumer.js +++ b/test/test-source-map-consumer.js @@ -2192,3 +2192,31 @@ exports["test a mapping at the boundary of indexed source map offset"] = util.assertMapping(1, 0, "/the/root/one.js", 1, 0, null, null, map, assert); map.destroy(); }; + +exports["test SourceMapConsumer.fromSourceMap with a source map URL"] = + async function (assert) { + const smg = new SourceMapGenerator({ file: "out.js" }); + smg.addMapping({ + original: { line: 1, column: 0 }, + generated: { line: 1, column: 0 }, + source: "src/a.js", + }); + smg.setSourceContent("src/a.js", "a content"); + + const smc = await SourceMapConsumer.fromSourceMap( + smg, + "http://example.com/maps/out.js.map" + ); + assert.equal(smc.sources.length, 1); + assert.equal(smc.sources[0], "http://example.com/maps/src/a.js"); + assert.equal( + smc.originalPositionFor({ line: 1, column: 0 }).source, + "http://example.com/maps/src/a.js" + ); + assert.equal( + smc.sourceContentFor("http://example.com/maps/src/a.js"), + "a content" + ); + + smc.destroy(); + };