Skip to content

Commit d54c72d

Browse files
authored
Merge pull request #37 from parcel-bundler/column-offset-bugfix
Fix bug with column offset
2 parents 1fc437a + 5a2a3cd commit d54c72d

File tree

3 files changed

+37
-1
lines changed

3 files changed

+37
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@parcel/source-map",
3-
"version": "2.0.0-alpha.4.16",
3+
"version": "2.0.0-alpha.4.17",
44
"main": "./dist/node.js",
55
"browser": "./dist/wasm-browser.js",
66
"license": "MIT",

src/MappingContainer.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,10 @@ void MappingContainer::addIndexedMapping(int generatedLine, int generatedColumn,
507507

508508
// TODO: This can be improved performance wise, by not having line stored in both MappingLine and Mapping
509509
void MappingContainer::offsetLines(int line, int lineOffset) {
510+
if (_generated_lines < line) {
511+
return;
512+
}
513+
510514
int lineCount = this->_mapping_lines.size();
511515

512516
if (lineOffset > 0) {
@@ -537,6 +541,10 @@ void MappingContainer::offsetLines(int line, int lineOffset) {
537541
}
538542

539543
void MappingContainer::offsetColumns(int line, int column, int columnOffset) {
544+
if (_generated_lines < line) {
545+
return;
546+
}
547+
540548
auto mappingsCount = this->_mapping_lines[line]._segments.size();
541549
for (int i = 0; i < mappingsCount; ++i) {
542550
if (this->_mapping_lines[line]._segments[i].generated.column < column) {

test/offset-utils.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,20 @@ describe('SourceMap - Offset Utils', () => {
8787
});
8888
});
8989

90+
it('Column offset empty map', () => {
91+
let map = new SourceMap('/');
92+
93+
map.offsetColumns(1, 0, 2);
94+
map.offsetColumns(2, 15, -4);
95+
96+
assert.deepEqual(map.getMap(), {
97+
sources: [],
98+
sourcesContent: [],
99+
names: [],
100+
mappings: [],
101+
});
102+
});
103+
90104
it('Positive line offset', () => {
91105
let map = new SourceMap('/test-root');
92106

@@ -236,4 +250,18 @@ describe('SourceMap - Offset Utils', () => {
236250
],
237251
});
238252
});
253+
254+
it('Line offset empty map', () => {
255+
let map = new SourceMap('/');
256+
257+
map.offsetLines(1, 2);
258+
map.offsetLines(2, 5);
259+
260+
assert.deepEqual(map.getMap(), {
261+
sources: [],
262+
sourcesContent: [],
263+
names: [],
264+
mappings: [],
265+
});
266+
});
239267
});

0 commit comments

Comments
 (0)