|
1 | | -import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq'; |
| 1 | +import { |
| 2 | + comma, |
| 3 | + decodeInteger, |
| 4 | + decodeSign, |
| 5 | + encodeInteger, |
| 6 | + encodeSign, |
| 7 | + hasMoreVlq, |
| 8 | + semicolon, |
| 9 | +} from './vlq'; |
2 | 10 | import { StringWriter, StringReader } from './strings'; |
3 | 11 |
|
4 | 12 | export { |
@@ -36,17 +44,17 @@ export function decode(mappings: string): SourceMapMappings { |
36 | 44 | while (reader.pos < semi) { |
37 | 45 | let seg: SourceMapSegment; |
38 | 46 |
|
39 | | - genColumn = decodeInteger(reader, genColumn); |
| 47 | + genColumn += decodeSign(decodeInteger(reader)); |
40 | 48 | if (genColumn < lastCol) sorted = false; |
41 | 49 | lastCol = genColumn; |
42 | 50 |
|
43 | 51 | if (hasMoreVlq(reader, semi)) { |
44 | | - sourcesIndex = decodeInteger(reader, sourcesIndex); |
45 | | - sourceLine = decodeInteger(reader, sourceLine); |
46 | | - sourceColumn = decodeInteger(reader, sourceColumn); |
| 52 | + sourcesIndex += decodeSign(decodeInteger(reader)); |
| 53 | + sourceLine += decodeSign(decodeInteger(reader)); |
| 54 | + sourceColumn += decodeSign(decodeInteger(reader)); |
47 | 55 |
|
48 | 56 | if (hasMoreVlq(reader, semi)) { |
49 | | - namesIndex = decodeInteger(reader, namesIndex); |
| 57 | + namesIndex += decodeSign(decodeInteger(reader)); |
50 | 58 | seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; |
51 | 59 | } else { |
52 | 60 | seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; |
@@ -95,15 +103,20 @@ export function encode(decoded: Readonly<SourceMapMappings>): string { |
95 | 103 | const segment = line[j]; |
96 | 104 | if (j > 0) writer.write(comma); |
97 | 105 |
|
98 | | - genColumn = encodeInteger(writer, segment[0], genColumn); |
| 106 | + encodeInteger(writer, encodeSign(segment[0] - genColumn)); |
| 107 | + genColumn = segment[0]; |
99 | 108 |
|
100 | 109 | if (segment.length === 1) continue; |
101 | | - sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); |
102 | | - sourceLine = encodeInteger(writer, segment[2], sourceLine); |
103 | | - sourceColumn = encodeInteger(writer, segment[3], sourceColumn); |
| 110 | + encodeInteger(writer, encodeSign(segment[1] - sourcesIndex)); |
| 111 | + sourcesIndex = segment[1]; |
| 112 | + encodeInteger(writer, encodeSign(segment[2] - sourceLine)); |
| 113 | + sourceLine = segment[2]; |
| 114 | + encodeInteger(writer, encodeSign(segment[3] - sourceColumn)); |
| 115 | + sourceColumn = segment[3]; |
104 | 116 |
|
105 | 117 | if (segment.length === 4) continue; |
106 | | - namesIndex = encodeInteger(writer, segment[4], namesIndex); |
| 118 | + encodeInteger(writer, encodeSign(segment[4] - namesIndex)); |
| 119 | + namesIndex = segment[4]; |
107 | 120 | } |
108 | 121 | } |
109 | 122 |
|
|
0 commit comments