diff --git a/test/fixtures/test426/range-mappings-proposal-tests.json b/test/fixtures/test426/range-mappings-proposal-tests.json index 7b108e7e5e15bd..ff4a1791dbfee4 100644 --- a/test/fixtures/test426/range-mappings-proposal-tests.json +++ b/test/fixtures/test426/range-mappings-proposal-tests.json @@ -38,11 +38,18 @@ }, { "name": "rangeMappingsInvalidVLQZero", - "description": "VLQ of zero is invalid because offsets are 1-based", + "description": "VLQ with relative offset of 0 after the initial mapping is invalid", "baseFile": "invalid-vlq-zero.js", "sourceMapFile": "invalid-vlq-zero.js.map", "sourceMapIsValid": false }, + { + "name": "rangeMappingsInvalidMappingForRange", + "description": "Range mappings cannot point to a mapping withou an original position", + "baseFile": "invalid-mapping-for-range.js", + "sourceMapFile": "invalid-mapping-for-range.js.map", + "sourceMapIsValid": false + }, { "name": "rangeMappingsOutOfRange", "description": "Test an invalid range mapping which is outside the mappings length", @@ -57,6 +64,13 @@ "sourceMapFile": "out-of-range-2.js.map", "sourceMapIsValid": false }, + { + "name": "rangeMappingsOutOfRange3", + "description": "Test an invalid range mapping encoded with a continuation bit that is too large", + "baseFile": "out-of-range-3.js", + "sourceMapFile": "out-of-range-3.js.map", + "sourceMapIsValid": false + }, { "name": "rangeMappingsEmpty", "description": "Test a trivial range mapping that is the empty string", @@ -64,6 +78,13 @@ "sourceMapFile": "empty-string.js.map", "sourceMapIsValid": true }, + { + "name": "rangeMappingsExtraLinesInRangeMappings", + "description": "Test that it's ok for range mappings to have trailing empty lines not in mappings", + "baseFile": "extra-lines-in-range-mappings.js", + "sourceMapFile": "extra-lines-in-range-mappings.js.map", + "sourceMapIsValid": true + }, { "name": "rangeMappingsNonFullLineCoverage", "description": "Test a non-empty range mapping where not all lines in the generated source are covered", @@ -71,6 +92,60 @@ "sourceMapFile": "non-full-line-coverage.js.map", "sourceMapIsValid": true }, + { + "name": "rangeMappingsVLQContinuationBit", + "description": "Test a range mapping that uses a VLQ with continuation bit", + "baseFile": "vlq-continuation-bit.js", + "sourceMapFile": "vlq-continuation-bit.js.map", + "sourceMapIsValid": true, + "testActions": [ + { + "actionType": "checkMapping", + "generatedLine": 0, + "generatedColumn": 0, + "originalSource": "vlq-continuation-bit-original.js", + "originalLine": 0, + "originalColumn": 0, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 0, + "generatedColumn": 1, + "originalSource": "vlq-continuation-bit-original.js", + "originalLine": 0, + "originalColumn": 1, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 0, + "generatedColumn": 3, + "originalSource": "vlq-continuation-bit-original.js", + "originalLine": 0, + "originalColumn": 2, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 0, + "generatedColumn": 196, + "originalSource": "vlq-continuation-bit-original.js", + "originalLine": 0, + "originalColumn": 195, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 0, + "generatedColumn": 199, + "originalSource": "vlq-continuation-bit-original.js", + "originalLine": 0, + "originalColumn": 199, + "mappedName": null + } + ] + }, { "name": "rangeMappingsSimple", "description": "Test a simple, single-entry rangeMappings", @@ -138,7 +213,7 @@ "generatedColumn": 16, "originalSource": "multiple-mappings-original.js", "originalLine": 0, - "originalColumn": 16, + "originalColumn": 17, "mappedName": null }, { @@ -147,7 +222,25 @@ "generatedColumn": 18, "originalSource": "multiple-mappings-original.js", "originalLine": 0, - "originalColumn": 18, + "originalColumn": 19, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 1, + "generatedColumn": 30, + "originalSource": "multiple-mappings-original.js", + "originalLine": 0, + "originalColumn": 31, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 1, + "generatedColumn": 34, + "originalSource": "multiple-mappings-original.js", + "originalLine": 0, + "originalColumn": 35, "mappedName": null }, { @@ -156,7 +249,16 @@ "generatedColumn": 35, "originalSource": "multiple-mappings-original.js", "originalLine": 0, - "originalColumn": 36, + "originalColumn": 35, + "mappedName": null + }, + { + "actionType": "checkMapping", + "generatedLine": 1, + "generatedColumn": 36, + "originalSource": "multiple-mappings-original.js", + "originalLine": 0, + "originalColumn": 38, "mappedName": null } ] diff --git a/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-mappings.js b/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-mappings.js new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js b/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js new file mode 100644 index 00000000000000..13a2975e15b0de --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js @@ -0,0 +1,3 @@ + +42; +//# sourceMappingURL=extra-lines-in-range-mappings.js.map diff --git a/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js.map b/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js.map new file mode 100644 index 00000000000000..f08fe09d0fc6ac --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/extra-lines-in-range-mappings.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "names": [], + "sources": ["extra-lines-in-range-mappings-original.js"], + "sourcesContent": ["42;"], + "mappings": ";AAAA,EAAE;", + "rangeMappings": ";A;;;" +} diff --git a/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js b/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js new file mode 100644 index 00000000000000..29924a5d23d095 --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js @@ -0,0 +1,3 @@ + +42; +//# sourceMappingURL=invalid-mapping-for-range.js.map diff --git a/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js.map b/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js.map new file mode 100644 index 00000000000000..c6da9691361da1 --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/invalid-mapping-for-range.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "names": [], + "sources": ["invalid-mapping-for-range-original.js"], + "sourcesContent": ["42;"], + "mappings": ";A,EAAE", + "rangeMappings": ";A" +} diff --git a/test/fixtures/test426/resources/proposals/range-mappings/invalid-vlq-zero.js.map b/test/fixtures/test426/resources/proposals/range-mappings/invalid-vlq-zero.js.map index fe13e8f5225acd..e9ac1349ee1aad 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/invalid-vlq-zero.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/invalid-vlq-zero.js.map @@ -4,6 +4,6 @@ "file": "invalid-vlq-zero.js", "sources": ["empty-original.js"], "sourcesContent": [""], - "mappings": "A", - "rangeMappings": "A" + "mappings": "A,A", + "rangeMappings": "AA" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js b/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js index b98843245bf481..4e97684d030f75 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js +++ b/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js @@ -1,3 +1,3 @@ - "Hello world"; function f() { } + "Hello world"; function f() { }; 6 //# sourceMappingURL=multiple-mappings.js.map diff --git a/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js.map b/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js.map index c7ffc83e012283..534f744149e2bc 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/multiple-mappings.js.map @@ -2,7 +2,7 @@ "version": 3, "names": [], "sources": ["multiple-mappings-original.js"], - "sourcesContent": ["\"Hello World\"; function f() { } "], - "mappings": ";CAAA,aAAa,EAAG,iBAAoB;A", - "rangeMappings": ";BC;" + "sourcesContent": ["\"Hello World\"; function f() { }; 6"], + "mappings": ";CAAA,aAAa,EAAI,kBAAkB,EAAG;", + "rangeMappings": ";AC;" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/newline-semantics.js.map b/test/fixtures/test426/resources/proposals/range-mappings/newline-semantics.js.map index b6f7b44282c3ff..9f9e581b9edd17 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/newline-semantics.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/newline-semantics.js.map @@ -5,5 +5,5 @@ "sources": ["newline-semantics-original.js"], "sourcesContent": ["1234\n5678"], "mappings": "CAAA;GACG", - "rangeMappings": "B;" + "rangeMappings": "A;" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/non-full-line-coverage.js.map b/test/fixtures/test426/resources/proposals/range-mappings/non-full-line-coverage.js.map index 952a3c30b1d084..35d437de38228a 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/non-full-line-coverage.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/non-full-line-coverage.js.map @@ -4,6 +4,6 @@ "file": "empty-string.js", "sources": ["simple-original.js"], "sourcesContent": ["\"Hello World\""], - "mappings": ";CAAA;A", - "rangeMappings": ";B" + "mappings": ";CAAA;A;;;", + "rangeMappings": ";A" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-2.js.map b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-2.js.map index f573e035dca549..9e4d32d34b51c5 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-2.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-2.js.map @@ -1,9 +1,9 @@ { "version": 3, "names": [], - "file": "out-of-range.js", + "file": "out-of-range-2.js", "sources": ["foo.js"], "sourcesContent": ["\"foo\""], - "mappings": "AAA", - "rangeMappings": "C;B;B" + "mappings": "AAAA", + "rangeMappings": "B;A;A" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js new file mode 100644 index 00000000000000..7a461fc61277ca --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js @@ -0,0 +1,2 @@ +1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;21;22;23;24;25;26;27;28;29;30;31;31;32;33;34;35;36;37;38;39;40;41;41;42;43;44;45;46;47;48;49;50;51;51;52;53;54;55;56;57;58;59;60;61;61;62;63;64;65;66;67;68;69;70 +//# sourceMappingURL=out-of-range-3.js.map diff --git a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js.map b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js.map new file mode 100644 index 00000000000000..314dfc03781170 --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range-3.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "names": [], + "sources": ["out-of-range-3.js"], + "sourcesContent": ["1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;21;22;23;24;25;26;27;28;29;30;31;31;32;33;34;35;36;37;38;39;40;41;41;42;43;44;45;46;47;48;49;50;51;51;52;53;54;55;56;57;58;59;60;61;61;62;63;64;65;66;67;68;69;70"], + "mappings": "AAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG", + "rangeMappings": "mC" +} diff --git a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range.js.map b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range.js.map index 5da575a7a6355d..f5b61daf071b2f 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/out-of-range.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/out-of-range.js.map @@ -4,6 +4,6 @@ "file": "out-of-range.js", "sources": ["foo.js"], "sourcesContent": ["\"foo\""], - "mappings": "AAA", - "rangeMappings": "C" + "mappings": "AAAA", + "rangeMappings": "B" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/simple.js.map b/test/fixtures/test426/resources/proposals/range-mappings/simple.js.map index 856d31a9c84e14..0cd782bcee0638 100644 --- a/test/fixtures/test426/resources/proposals/range-mappings/simple.js.map +++ b/test/fixtures/test426/resources/proposals/range-mappings/simple.js.map @@ -5,5 +5,5 @@ "sources": ["simple-original.js"], "sourcesContent": ["\"Hello World\""], "mappings": ";CAAA;A", - "rangeMappings": ";B;" + "rangeMappings": ";A;" } diff --git a/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js b/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js new file mode 100644 index 00000000000000..137479bc04ca72 --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js @@ -0,0 +1,2 @@ +1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;21;22;23;24;25;26;27;28;29;30;31;31;32;33;34;35;36;37;38;39;40;41;41;42;43;44;45;46;47;48;49;50;51;51;52;53;54;55;56;57;58;59;60;61;61;62;63;64;65;66;67;68;69;70 +//# sourceMappingURL=vlq-continuation-bit.js.map diff --git a/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js.map b/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js.map new file mode 100644 index 00000000000000..5b8c1eb071fdd8 --- /dev/null +++ b/test/fixtures/test426/resources/proposals/range-mappings/vlq-continuation-bit.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "names": [], + "sources": ["vlq-continuation-bit-original.js"], + "sourcesContent": ["1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;21;22;23;24;25;26;27;28;29;30;31;31;32;33;34;35;36;37;38;39;40;41;41;42;43;44;45;46;47;48;49;50;51;51;52;53;54;55;56;57;58;59;60;61;61;62;63;64;65;66;67;68;69;70"], + "mappings": "AAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG", + "rangeMappings": "AgCF" +} diff --git a/test/test426/README.md b/test/test426/README.md index 00f249c8d36a29..2bc52a566ba924 100644 --- a/test/test426/README.md +++ b/test/test426/README.md @@ -7,7 +7,7 @@ suite ensures that the Node.js source map implementation conforms to the The [`test/fixtures/test426`](../fixtures/test426/) contains a copy of the set of [Source Map Tests][] suite. The last updated hash is: -* +* See the json files in [the `status` folder](./status) for prerequisites, expected failures, and support status for specific tests.