source-map
Advanced tools
Comparing version 0.4.3 to 0.4.4
@@ -25,3 +25,3 @@ /* -*- Mode: js; js-indent-level: 2; -*- */ | ||
return lineB > lineA || lineB == lineA && columnB >= columnA || | ||
util.compareByGeneratedPositions(mappingA, mappingB) <= 0; | ||
util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; | ||
} | ||
@@ -79,3 +79,3 @@ | ||
if (!this._sorted) { | ||
this._array.sort(util.compareByGeneratedPositions); | ||
this._array.sort(util.compareByGeneratedPositionsInflated); | ||
this._sorted = true; | ||
@@ -82,0 +82,0 @@ } |
@@ -340,4 +340,4 @@ /* -*- Mode: js; js-indent-level: 2; -*- */ | ||
smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); | ||
smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); | ||
var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); | ||
var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); | ||
smc.sourceRoot = aSourceMap._sourceRoot; | ||
@@ -348,14 +348,34 @@ smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), | ||
smc.__generatedMappings = aSourceMap._mappings.toArray().slice(); | ||
smc.__originalMappings = aSourceMap._mappings.toArray().slice().sort(); | ||
// Because we are modifying the entries (by converting string sources and | ||
// names to indices into the sources and names ArraySets), we have to make | ||
// a copy of the entry or else bad things happen. Shared mutable state | ||
// strikes again! See github issue #191. | ||
smc.__generatedMappings.forEach(function (m) { | ||
if (m.source !== null) { | ||
m.source = smc._sources.indexOf(m.source); | ||
var generatedMappings = aSourceMap._mappings.toArray().slice(); | ||
var destGeneratedMappings = smc.__generatedMappings = []; | ||
var destOriginalMappings = smc.__originalMappings = []; | ||
if (m.name !== null) { | ||
m.name = smc._names.indexOf(m.name); | ||
for (var i = 0, length = generatedMappings.length; i < length; i++) { | ||
var srcMapping = generatedMappings[i]; | ||
var destMapping = new Mapping; | ||
destMapping.generatedLine = srcMapping.generatedLine; | ||
destMapping.generatedColumn = srcMapping.generatedColumn; | ||
if (srcMapping.source) { | ||
destMapping.source = sources.indexOf(srcMapping.source); | ||
destMapping.originalLine = srcMapping.originalLine; | ||
destMapping.originalColumn = srcMapping.originalColumn; | ||
if (srcMapping.name) { | ||
destMapping.name = names.indexOf(srcMapping.name); | ||
} | ||
destOriginalMappings.push(destMapping); | ||
} | ||
}); | ||
destGeneratedMappings.push(destMapping); | ||
} | ||
quickSort(smc.__originalMappings, util.compareByOriginalPositions); | ||
return smc; | ||
@@ -494,3 +514,3 @@ }; | ||
quickSort(generatedMappings, util.compareByGeneratedPositions); | ||
quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); | ||
this.__generatedMappings = generatedMappings; | ||
@@ -585,3 +605,3 @@ | ||
"generatedColumn", | ||
util.compareByGeneratedPositions, | ||
util.compareByGeneratedPositionsDeflated, | ||
util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) | ||
@@ -1055,3 +1075,3 @@ ); | ||
quickSort(this.__generatedMappings, util.compareByGeneratedPositions); | ||
quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); | ||
quickSort(this.__originalMappings, util.compareByOriginalPositions); | ||
@@ -1058,0 +1078,0 @@ }; |
@@ -300,3 +300,2 @@ /* -*- Mode: js; js-indent-level: 2; -*- */ | ||
var mappings = this._mappings.toArray(); | ||
for (var i = 0, len = mappings.length; i < len; i++) { | ||
@@ -314,3 +313,3 @@ mapping = mappings[i]; | ||
if (i > 0) { | ||
if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) { | ||
if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { | ||
continue; | ||
@@ -317,0 +316,0 @@ } |
@@ -286,4 +286,4 @@ /* -*- Mode: js; js-indent-level: 2; -*- */ | ||
/** | ||
* Comparator between two mappings where the generated positions are | ||
* compared. | ||
* Comparator between two mappings with deflated source and name indices where | ||
* the generated positions are compared. | ||
* | ||
@@ -295,3 +295,3 @@ * Optionally pass in `true` as `onlyCompareGenerated` to consider two | ||
*/ | ||
function compareByGeneratedPositions(mappingA, mappingB, onlyCompareGenerated) { | ||
function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { | ||
var cmp = mappingA.generatedLine - mappingB.generatedLine; | ||
@@ -324,4 +324,50 @@ if (cmp !== 0) { | ||
}; | ||
exports.compareByGeneratedPositions = compareByGeneratedPositions; | ||
exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; | ||
function strcmp(aStr1, aStr2) { | ||
if (aStr1 === aStr2) { | ||
return 0; | ||
} | ||
if (aStr1 > aStr2) { | ||
return 1; | ||
} | ||
return -1; | ||
} | ||
/** | ||
* Comparator between two mappings with inflated source and name strings where | ||
* the generated positions are compared. | ||
*/ | ||
function compareByGeneratedPositionsInflated(mappingA, mappingB) { | ||
var cmp = mappingA.generatedLine - mappingB.generatedLine; | ||
if (cmp !== 0) { | ||
return cmp; | ||
} | ||
cmp = mappingA.generatedColumn - mappingB.generatedColumn; | ||
if (cmp !== 0) { | ||
return cmp; | ||
} | ||
cmp = strcmp(mappingA.source, mappingB.source); | ||
if (cmp !== 0) { | ||
return cmp; | ||
} | ||
cmp = mappingA.originalLine - mappingB.originalLine; | ||
if (cmp !== 0) { | ||
return cmp; | ||
} | ||
cmp = mappingA.originalColumn - mappingB.originalColumn; | ||
if (cmp !== 0) { | ||
return cmp; | ||
} | ||
return strcmp(mappingA.name, mappingB.name); | ||
}; | ||
exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; | ||
}); |
{ | ||
"name": "source-map", | ||
"description": "Generates and consumes source maps", | ||
"version": "0.4.3", | ||
"version": "0.4.4", | ||
"homepage": "https://github.com/mozilla/source-map", | ||
@@ -50,2 +50,6 @@ "author": "Nick Fitzgerald <nfitzgerald@mozilla.com>", | ||
"main": "./lib/source-map.js", | ||
"files": [ | ||
"lib/", | ||
"build/" | ||
], | ||
"engines": { | ||
@@ -52,0 +56,0 @@ "node": ">=0.8.0" |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
1
0
126318
22
2814
1