Skip to content

Commit 6cc44d1

Browse files
committed
Merge pull request microsoft#6813 from Microsoft/port6745tomaster
Port 6745
2 parents 823df85 + 0db90b7 commit 6cc44d1

File tree

49 files changed

+570
-9
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+570
-9
lines changed

src/compiler/sourcemap.ts

+13-9
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ namespace ts {
1616
}
1717

1818
let nullSourceMapWriter: SourceMapWriter;
19+
// Used for initialize lastEncodedSourceMapSpan and reset lastEncodedSourceMapSpan when updateLastEncodedAndRecordedSpans
20+
const defaultLastEncodedSourceMapSpan: SourceMapSpan = {
21+
emittedLine: 1,
22+
emittedColumn: 1,
23+
sourceLine: 1,
24+
sourceColumn: 1,
25+
sourceIndex: 0
26+
};
1927

2028
export function getNullSourceMapWriter(): SourceMapWriter {
2129
if (nullSourceMapWriter === undefined) {
@@ -79,13 +87,7 @@ namespace ts {
7987

8088
// Last recorded and encoded spans
8189
lastRecordedSourceMapSpan = undefined;
82-
lastEncodedSourceMapSpan = {
83-
emittedLine: 1,
84-
emittedColumn: 1,
85-
sourceLine: 1,
86-
sourceColumn: 1,
87-
sourceIndex: 0
88-
};
90+
lastEncodedSourceMapSpan = defaultLastEncodedSourceMapSpan;
8991
lastEncodedNameIndex = 0;
9092

9193
// Initialize source map data
@@ -159,10 +161,12 @@ namespace ts {
159161
// Pop sourceMapDecodedMappings to remove last entry
160162
sourceMapData.sourceMapDecodedMappings.pop();
161163

162-
// Change the last encoded source map
164+
// Point the lastEncodedSourceMapSpace to the previous encoded sourceMapSpan
165+
// If the list is empty which indicates that we are at the beginning of the file,
166+
// we have to reset it to default value (same value when we first initialize sourceMapWriter)
163167
lastEncodedSourceMapSpan = sourceMapData.sourceMapDecodedMappings.length ?
164168
sourceMapData.sourceMapDecodedMappings[sourceMapData.sourceMapDecodedMappings.length - 1] :
165-
undefined;
169+
defaultLastEncodedSourceMapSpan;
166170

167171
// TODO: Update lastEncodedNameIndex
168172
// Since we dont support this any more, lets not worry about it right now.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js.map

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
===================================================================
2+
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js
3+
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js.map
4+
sourceRoot:
5+
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js
9+
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.ts
10+
-------------------------------------------------------------------
11+
>>>var x = [1, 2][0];
12+
1 >
13+
2 >^^^^^^^^^^^^^^^^^
14+
3 > ^
15+
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
16+
1 >
17+
>var [
18+
2 >x
19+
3 > ] = [1, 2];
20+
1 >Emitted(1, 1) Source(2, 6) + SourceIndex(0)
21+
2 >Emitted(1, 18) Source(2, 7) + SourceIndex(0)
22+
3 >Emitted(1, 19) Source(2, 18) + SourceIndex(0)
23+
---
24+
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.js.map
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.ts ===
2+
3+
var [x] = [1, 2];
4+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.ts, 1, 5))
5+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern4.ts ===
2+
3+
var [x] = [1, 2];
4+
>x : number
5+
>[1, 2] : [number, number]
6+
>1 : number
7+
>2 : number
8+

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js.map

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
===================================================================
2+
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js
3+
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js.map
4+
sourceRoot:
5+
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js
9+
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts
10+
-------------------------------------------------------------------
11+
>>>var x = [1, 2][0];
12+
1 >
13+
2 >^^^^^^^^^^^^^^^^^
14+
3 > ^
15+
4 > ^^^^^^^^^^^^^^^^^^^^^->
16+
1 >
17+
>var [
18+
2 >x
19+
3 > ] = [1, 2];
20+
1 >Emitted(1, 1) Source(2, 6) + SourceIndex(0)
21+
2 >Emitted(1, 18) Source(2, 7) + SourceIndex(0)
22+
3 >Emitted(1, 19) Source(2, 18) + SourceIndex(0)
23+
---
24+
>>>var _a = [1, 2], y = _a[0], z = _a[1];
25+
1->
26+
2 >^^^^
27+
3 > ^^^^^^^^^^^
28+
4 > ^^
29+
5 > ^^^^^^^^^
30+
6 > ^^
31+
7 > ^^^^^^^^^
32+
8 > ^
33+
9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
34+
1->
35+
>
36+
2 >
37+
3 > var [y, z] = [1, 2]
38+
4 >
39+
5 > y
40+
6 > ,
41+
7 > z
42+
8 > ] = [1, 2];
43+
1->Emitted(2, 1) Source(3, 1) + SourceIndex(0)
44+
2 >Emitted(2, 5) Source(3, 1) + SourceIndex(0)
45+
3 >Emitted(2, 16) Source(3, 20) + SourceIndex(0)
46+
4 >Emitted(2, 18) Source(3, 6) + SourceIndex(0)
47+
5 >Emitted(2, 27) Source(3, 7) + SourceIndex(0)
48+
6 >Emitted(2, 29) Source(3, 9) + SourceIndex(0)
49+
7 >Emitted(2, 38) Source(3, 10) + SourceIndex(0)
50+
8 >Emitted(2, 39) Source(3, 21) + SourceIndex(0)
51+
---
52+
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.js.map
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts ===
2+
3+
var [x] = [1, 2];
4+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts, 1, 5))
5+
6+
var [y, z] = [1, 2];
7+
>y : Symbol(y, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts, 2, 5))
8+
>z : Symbol(z, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts, 2, 7))
9+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern5.ts ===
2+
3+
var [x] = [1, 2];
4+
>x : number
5+
>[1, 2] : [number, number]
6+
>1 : number
7+
>2 : number
8+
9+
var [y, z] = [1, 2];
10+
>y : number
11+
>z : number
12+
>[1, 2] : [number, number]
13+
>1 : number
14+
>2 : number
15+

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js.map

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
===================================================================
2+
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js
3+
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js.map
4+
sourceRoot:
5+
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js
9+
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.ts
10+
-------------------------------------------------------------------
11+
>>>var _a = [1, 2][0], x = _a === void 0 ? 20 : _a;
12+
1 >
13+
2 >^^^^^^^^^^^^^^^^^^
14+
3 > ^^
15+
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^
16+
5 > ^
17+
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
18+
1 >
19+
>var [
20+
2 >x = 20
21+
3 >
22+
4 > x = 20
23+
5 > ] = [1, 2];
24+
1 >Emitted(1, 1) Source(2, 6) + SourceIndex(0)
25+
2 >Emitted(1, 19) Source(2, 12) + SourceIndex(0)
26+
3 >Emitted(1, 21) Source(2, 6) + SourceIndex(0)
27+
4 >Emitted(1, 48) Source(2, 12) + SourceIndex(0)
28+
5 >Emitted(1, 49) Source(2, 23) + SourceIndex(0)
29+
---
30+
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.js.map
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.ts ===
2+
3+
var [x = 20] = [1, 2];
4+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.ts, 1, 5))
5+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern6.ts ===
2+
3+
var [x = 20] = [1, 2];
4+
>x : number
5+
>20 : number
6+
>[1, 2] : [number, number]
7+
>1 : number
8+
>2 : number
9+

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js.map

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
===================================================================
2+
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js
3+
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js.map
4+
sourceRoot:
5+
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js
9+
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts
10+
-------------------------------------------------------------------
11+
>>>var _a = [1, 2], _b = _a[0], x = _b === void 0 ? 20 : _b, j = _a[1];
12+
1 >
13+
2 >^^^^
14+
3 > ^^^^^^^^^^^
15+
4 > ^^
16+
5 > ^^^^^^^^^^
17+
6 > ^^
18+
7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^
19+
8 > ^^
20+
9 > ^^^^^^^^^
21+
10> ^
22+
11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
23+
1 >
24+
>
25+
2 >
26+
3 > var [x = 20, j] = [1, 2]
27+
4 >
28+
5 > x = 20
29+
6 >
30+
7 > x = 20
31+
8 > ,
32+
9 > j
33+
10> ] = [1, 2];
34+
1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
35+
2 >Emitted(1, 5) Source(2, 1) + SourceIndex(0)
36+
3 >Emitted(1, 16) Source(2, 25) + SourceIndex(0)
37+
4 >Emitted(1, 18) Source(2, 6) + SourceIndex(0)
38+
5 >Emitted(1, 28) Source(2, 12) + SourceIndex(0)
39+
6 >Emitted(1, 30) Source(2, 6) + SourceIndex(0)
40+
7 >Emitted(1, 57) Source(2, 12) + SourceIndex(0)
41+
8 >Emitted(1, 59) Source(2, 14) + SourceIndex(0)
42+
9 >Emitted(1, 68) Source(2, 15) + SourceIndex(0)
43+
10>Emitted(1, 69) Source(2, 26) + SourceIndex(0)
44+
---
45+
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.js.map
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts ===
2+
3+
var [x = 20, j] = [1, 2];
4+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts, 1, 5))
5+
>j : Symbol(j, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts, 1, 12))
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern7.ts ===
2+
3+
var [x = 20, j] = [1, 2];
4+
>x : number
5+
>20 : number
6+
>j : number
7+
>[1, 2] : [number, number]
8+
>1 : number
9+
>2 : number
10+

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js.map

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
===================================================================
2+
JsFile: sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js
3+
mapUrl: sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js.map
4+
sourceRoot:
5+
sources: sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts
6+
===================================================================
7+
-------------------------------------------------------------------
8+
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js
9+
sourceFile:sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts
10+
-------------------------------------------------------------------
11+
>>>var x = { x: 20 }.x;
12+
1 >
13+
2 >^^^^^^^^^^^^^^^^^^^
14+
3 > ^
15+
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
16+
1 >
17+
>var {
18+
2 >x
19+
3 > } = { x: 20 };
20+
1 >Emitted(1, 1) Source(2, 6) + SourceIndex(0)
21+
2 >Emitted(1, 20) Source(2, 7) + SourceIndex(0)
22+
3 >Emitted(1, 21) Source(2, 21) + SourceIndex(0)
23+
---
24+
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.js.map
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts ===
2+
3+
var {x} = { x: 20 };
4+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts, 1, 5))
5+
>x : Symbol(x, Decl(sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts, 1, 11))
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementObjectBindingPattern1.ts ===
2+
3+
var {x} = { x: 20 };
4+
>x : number
5+
>{ x: 20 } : { x: number; }
6+
>x : number
7+
>20 : number
8+

tests/baselines/reference/sourceMapValidationDestructuringVariableStatementObjectBindingPattern2.js

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)