diff --git a/lib/source-map-consumer.js b/lib/source-map-consumer.js index ee661146..d3c4b1a8 100644 --- a/lib/source-map-consumer.js +++ b/lib/source-map-consumer.js @@ -512,15 +512,15 @@ BasicSourceMapConsumer.prototype._parseMappings = var previousName = 0; var length = aStr.length; var index = 0; - var cachedSegments = {}; var temp = {}; var originalMappings = []; var generatedMappings = []; - var mapping, str, segment, end, value; + var mapping, segment, end, value, charCode; let subarrayStart = 0; while (index < length) { - if (aStr.charAt(index) === ';') { + charCode = aStr.charCodeAt(index); + if (charCode === 59) { // ';' generatedLine++; index++; previousGeneratedColumn = 0; @@ -528,19 +528,20 @@ BasicSourceMapConsumer.prototype._parseMappings = sortGenerated(generatedMappings, subarrayStart); subarrayStart = generatedMappings.length; } - else if (aStr.charAt(index) === ',') { + else if (charCode === 44) { // ',' index++; } else { mapping = new Mapping(); mapping.generatedLine = generatedLine; + // Find end of segment (next ';' or ',') for (end = index; end < length; end++) { - if (this._charIsMappingSeparator(aStr, end)) { + charCode = aStr.charCodeAt(end); + if (charCode === 44 || charCode === 59) { // ',' or ';' break; } } - str = aStr.slice(index, end); segment = []; while (index < end) {