From f51ae5deabfdb370f7619cc38871a7d210f90886 Mon Sep 17 00:00:00 2001 From: MotorHeat Date: Sun, 20 Jan 2019 14:09:10 +0100 Subject: [PATCH 1/2] Try 2 bias values when calling originalPositionFor from applySourceMap. --- lib/source-map-generator.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/source-map-generator.js b/lib/source-map-generator.js index 8111e061..a189b7bc 100644 --- a/lib/source-map-generator.js +++ b/lib/source-map-generator.js @@ -200,11 +200,19 @@ class SourceMapGenerator { // Find mappings for the "sourceFile" this._mappings.unsortedForEach(function(mapping) { if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. - const original = aSourceMapConsumer.originalPositionFor({ + let generatedPosition = { line: mapping.originalLine, - column: mapping.originalColumn - }); + column: mapping.originalColumn, + bias: SourceMapConsumer.GREATEST_LOWER_BOUND + }; + let original = aSourceMapConsumer.originalPositionFor(generatedPosition); + if (original.source === null) { + generatedPosition.bias = SourceMapConsumer.LEAST_UPPER_BOUND; + original = aSourceMapConsumer.originalPositionFor(generatedPosition); + } + if (original.source != null) { // Copy mapping mapping.source = original.source; From 816509da94e8327b6b52d0aa3d3be8304ccedfed Mon Sep 17 00:00:00 2001 From: MotorHeat Date: Sun, 20 Jan 2019 20:25:11 +0100 Subject: [PATCH 2/2] Fix error with undefined SourceMapConsumer --- lib/source-map-generator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/source-map-generator.js b/lib/source-map-generator.js index a189b7bc..f20344ae 100644 --- a/lib/source-map-generator.js +++ b/lib/source-map-generator.js @@ -9,7 +9,7 @@ const base64VLQ = require("./base64-vlq"); const util = require("./util"); const ArraySet = require("./array-set").ArraySet; const MappingList = require("./mapping-list").MappingList; - +const BasicSourceMapConsumer = require("./source-map-consumer").BasicSourceMapConsumer; /** * An instance of the SourceMapGenerator represents a source map which is * being built incrementally. You may pass an object with the following @@ -205,11 +205,11 @@ class SourceMapGenerator { let generatedPosition = { line: mapping.originalLine, column: mapping.originalColumn, - bias: SourceMapConsumer.GREATEST_LOWER_BOUND + bias: BasicSourceMapConsumer.GREATEST_LOWER_BOUND }; let original = aSourceMapConsumer.originalPositionFor(generatedPosition); if (original.source === null) { - generatedPosition.bias = SourceMapConsumer.LEAST_UPPER_BOUND; + generatedPosition.bias = BasicSourceMapConsumer.LEAST_UPPER_BOUND; original = aSourceMapConsumer.originalPositionFor(generatedPosition); }