From 593ba66af107602b33bd4db1da8011aebce4a43d Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 10 Nov 2015 14:35:30 -0800 Subject: [PATCH 01/10] Test cases for --sourceMap --inlineSources option --- .../optionsSourcemapInlineSources.js | 7 ++++ .../optionsSourcemapInlineSources.js.map | 2 ++ ...ptionsSourcemapInlineSources.sourcemap.txt | 34 +++++++++++++++++++ .../optionsSourcemapInlineSources.symbols | 5 +++ .../optionsSourcemapInlineSources.types | 6 ++++ .../optionsSourcemapInlineSourcesMapRoot.js | 7 ++++ ...ptionsSourcemapInlineSourcesMapRoot.js.map | 2 ++ ...ourcemapInlineSourcesMapRoot.sourcemap.txt | 34 +++++++++++++++++++ ...tionsSourcemapInlineSourcesMapRoot.symbols | 5 +++ ...optionsSourcemapInlineSourcesMapRoot.types | 6 ++++ ...optionsSourcemapInlineSourcesSourceRoot.js | 7 ++++ ...onsSourcemapInlineSourcesSourceRoot.js.map | 2 ++ ...cemapInlineSourcesSourceRoot.sourcemap.txt | 34 +++++++++++++++++++ ...nsSourcemapInlineSourcesSourceRoot.symbols | 5 +++ ...ionsSourcemapInlineSourcesSourceRoot.types | 6 ++++ .../compiler/optionsSourcemapInlineSources.ts | 4 +++ .../optionsSourcemapInlineSourcesMapRoot.ts | 5 +++ ...optionsSourcemapInlineSourcesSourceRoot.ts | 5 +++ 18 files changed, 176 insertions(+) create mode 100644 tests/baselines/reference/optionsSourcemapInlineSources.js create mode 100644 tests/baselines/reference/optionsSourcemapInlineSources.js.map create mode 100644 tests/baselines/reference/optionsSourcemapInlineSources.sourcemap.txt create mode 100644 tests/baselines/reference/optionsSourcemapInlineSources.symbols create mode 100644 tests/baselines/reference/optionsSourcemapInlineSources.types create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js.map create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.sourcemap.txt create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.symbols create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.types create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js.map create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.sourcemap.txt create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types create mode 100644 tests/cases/compiler/optionsSourcemapInlineSources.ts create mode 100644 tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts create mode 100644 tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts diff --git a/tests/baselines/reference/optionsSourcemapInlineSources.js b/tests/baselines/reference/optionsSourcemapInlineSources.js new file mode 100644 index 00000000000..029575ab992 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSources.js @@ -0,0 +1,7 @@ +//// [optionsSourcemapInlineSources.ts] + +var a = 10; + +//// [optionsSourcemapInlineSources.js] +var a = 10; +//# sourceMappingURL=optionsSourcemapInlineSources.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSources.js.map b/tests/baselines/reference/optionsSourcemapInlineSources.js.map new file mode 100644 index 00000000000..2be06332573 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSources.js.map @@ -0,0 +1,2 @@ +//// [optionsSourcemapInlineSources.js.map] +{"version":3,"file":"optionsSourcemapInlineSources.js","sourceRoot":"","sources":["optionsSourcemapInlineSources.ts"],"names":[],"mappings":"AACA,IAAI,CAAC,GAAG,EAAE,CAAC","sourcesContent":["\nvar a = 10;"]} \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSources.sourcemap.txt b/tests/baselines/reference/optionsSourcemapInlineSources.sourcemap.txt new file mode 100644 index 00000000000..79119d8c687 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSources.sourcemap.txt @@ -0,0 +1,34 @@ +=================================================================== +JsFile: optionsSourcemapInlineSources.js +mapUrl: optionsSourcemapInlineSources.js.map +sourceRoot: +sources: optionsSourcemapInlineSources.ts +sourcesContent: ["\nvar a = 10;"] +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsSourcemapInlineSources.js +sourceFile:optionsSourcemapInlineSources.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=optionsSourcemapInlineSources.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSources.symbols b/tests/baselines/reference/optionsSourcemapInlineSources.symbols new file mode 100644 index 00000000000..50649b86a0d --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSources.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/optionsSourcemapInlineSources.ts === + +var a = 10; +>a : Symbol(a, Decl(optionsSourcemapInlineSources.ts, 1, 3)) + diff --git a/tests/baselines/reference/optionsSourcemapInlineSources.types b/tests/baselines/reference/optionsSourcemapInlineSources.types new file mode 100644 index 00000000000..42fa1839371 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSources.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/optionsSourcemapInlineSources.ts === + +var a = 10; +>a : number +>10 : number + diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js new file mode 100644 index 00000000000..f7100140850 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js @@ -0,0 +1,7 @@ +//// [optionsSourcemapInlineSourcesMapRoot.ts] + +var a = 10; + +//// [optionsSourcemapInlineSourcesMapRoot.js] +var a = 10; +//# sourceMappingURL=local/optionsSourcemapInlineSourcesMapRoot.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js.map b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js.map new file mode 100644 index 00000000000..e99843b577f --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.js.map @@ -0,0 +1,2 @@ +//// [optionsSourcemapInlineSourcesMapRoot.js.map] +{"version":3,"file":"optionsSourcemapInlineSourcesMapRoot.js","sourceRoot":"","sources":["../optionsSourcemapInlineSourcesMapRoot.ts"],"names":[],"mappings":"AACA,IAAI,CAAC,GAAG,EAAE,CAAC","sourcesContent":["\nvar a = 10;"]} \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.sourcemap.txt b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.sourcemap.txt new file mode 100644 index 00000000000..a00040a9c93 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.sourcemap.txt @@ -0,0 +1,34 @@ +=================================================================== +JsFile: optionsSourcemapInlineSourcesMapRoot.js +mapUrl: local/optionsSourcemapInlineSourcesMapRoot.js.map +sourceRoot: +sources: ../optionsSourcemapInlineSourcesMapRoot.ts +sourcesContent: ["\nvar a = 10;"] +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.js +sourceFile:../optionsSourcemapInlineSourcesMapRoot.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=local/optionsSourcemapInlineSourcesMapRoot.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.symbols b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.symbols new file mode 100644 index 00000000000..57833abe2ee --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts === + +var a = 10; +>a : Symbol(a, Decl(optionsSourcemapInlineSourcesMapRoot.ts, 1, 3)) + diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.types b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.types new file mode 100644 index 00000000000..77abb6f7b11 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesMapRoot.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts === + +var a = 10; +>a : number +>10 : number + diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js new file mode 100644 index 00000000000..948d6536f46 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js @@ -0,0 +1,7 @@ +//// [optionsSourcemapInlineSourcesSourceRoot.ts] + +var a = 10; + +//// [optionsSourcemapInlineSourcesSourceRoot.js] +var a = 10; +//# sourceMappingURL=optionsSourcemapInlineSourcesSourceRoot.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js.map b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js.map new file mode 100644 index 00000000000..ad373e11aab --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.js.map @@ -0,0 +1,2 @@ +//// [optionsSourcemapInlineSourcesSourceRoot.js.map] +{"version":3,"file":"optionsSourcemapInlineSourcesSourceRoot.js","sourceRoot":"local/","sources":["optionsSourcemapInlineSourcesSourceRoot.ts"],"names":[],"mappings":"AACA,IAAI,CAAC,GAAG,EAAE,CAAC","sourcesContent":["\nvar a = 10;"]} \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.sourcemap.txt b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.sourcemap.txt new file mode 100644 index 00000000000..55102f5c1cd --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.sourcemap.txt @@ -0,0 +1,34 @@ +=================================================================== +JsFile: optionsSourcemapInlineSourcesSourceRoot.js +mapUrl: optionsSourcemapInlineSourcesSourceRoot.js.map +sourceRoot: local/ +sources: optionsSourcemapInlineSourcesSourceRoot.ts +sourcesContent: ["\nvar a = 10;"] +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.js +sourceFile:optionsSourcemapInlineSourcesSourceRoot.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=optionsSourcemapInlineSourcesSourceRoot.js.map \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols new file mode 100644 index 00000000000..76f2dc5fdc4 --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts === + +var a = 10; +>a : Symbol(a, Decl(optionsSourcemapInlineSourcesSourceRoot.ts, 1, 3)) + diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types new file mode 100644 index 00000000000..3689afc382c --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts === + +var a = 10; +>a : number +>10 : number + diff --git a/tests/cases/compiler/optionsSourcemapInlineSources.ts b/tests/cases/compiler/optionsSourcemapInlineSources.ts new file mode 100644 index 00000000000..dddfb5f84ca --- /dev/null +++ b/tests/cases/compiler/optionsSourcemapInlineSources.ts @@ -0,0 +1,4 @@ +// @sourcemap: true +// @inlineSources: true + +var a = 10; \ No newline at end of file diff --git a/tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts b/tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts new file mode 100644 index 00000000000..c7a74469dc1 --- /dev/null +++ b/tests/cases/compiler/optionsSourcemapInlineSourcesMapRoot.ts @@ -0,0 +1,5 @@ +// @sourcemap: true +// @inlineSources: true +// @mapRoot: local + +var a = 10; \ No newline at end of file diff --git a/tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts b/tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts new file mode 100644 index 00000000000..4fd372658ad --- /dev/null +++ b/tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts @@ -0,0 +1,5 @@ +// @sourcemap: true +// @inlineSources: true +// @sourceRoot: local + +var a = 10; \ No newline at end of file From 8020bf90d6dd2dd24e7a04bf19077780444e22ab Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 10 Nov 2015 14:44:51 -0800 Subject: [PATCH 02/10] Test cases to verify --inlineSourceMap with --sourcemap --mapRoot and --sourceRoot Note that --sourceRoot fails with crash --- .../optionsInlineSourceMapMapRoot.errors.txt | 9 +++++ .../optionsInlineSourceMapMapRoot.js | 7 ++++ ...ptionsInlineSourceMapMapRoot.sourcemap.txt | 33 +++++++++++++++++++ ...optionsInlineSourceMapSourcemap.errors.txt | 7 ++++ .../optionsInlineSourceMapSourcemap.js | 7 ++++ ...ionsInlineSourceMapSourcemap.sourcemap.txt | 33 +++++++++++++++++++ .../compiler/optionsInlineSourceMapMapRoot.ts | 4 +++ .../optionsInlineSourceMapSourceRoot.ts | 4 +++ .../optionsInlineSourceMapSourcemap.ts | 4 +++ 9 files changed, 108 insertions(+) create mode 100644 tests/baselines/reference/optionsInlineSourceMapMapRoot.errors.txt create mode 100644 tests/baselines/reference/optionsInlineSourceMapMapRoot.js create mode 100644 tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourcemap.errors.txt create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourcemap.js create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourcemap.sourcemap.txt create mode 100644 tests/cases/compiler/optionsInlineSourceMapMapRoot.ts create mode 100644 tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts create mode 100644 tests/cases/compiler/optionsInlineSourceMapSourcemap.ts diff --git a/tests/baselines/reference/optionsInlineSourceMapMapRoot.errors.txt b/tests/baselines/reference/optionsInlineSourceMapMapRoot.errors.txt new file mode 100644 index 00000000000..a9efb0e2971 --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapMapRoot.errors.txt @@ -0,0 +1,9 @@ +error TS5052: Option 'mapRoot' cannot be specified without specifying option 'sourceMap'. +error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. + + +!!! error TS5052: Option 'mapRoot' cannot be specified without specifying option 'sourceMap'. +!!! error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. +==== tests/cases/compiler/optionsInlineSourceMapMapRoot.ts (0 errors) ==== + + var a = 10; \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapMapRoot.js b/tests/baselines/reference/optionsInlineSourceMapMapRoot.js new file mode 100644 index 00000000000..6389f9eb84a --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapMapRoot.js @@ -0,0 +1,7 @@ +//// [optionsInlineSourceMapMapRoot.ts] + +var a = 10; + +//// [optionsInlineSourceMapMapRoot.js] +var a = 10; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt b/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt new file mode 100644 index 00000000000..e12e2d1096a --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt @@ -0,0 +1,33 @@ +=================================================================== +JsFile: optionsInlineSourceMapMapRoot.js +mapUrl: c:/TypeScript/tests/cases/compiler/optionsInlineSourceMapMapRoot.js.map +sourceRoot: +sources: optionsInlineSourceMapMapRoot.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsInlineSourceMapMapRoot.js +sourceFile:optionsInlineSourceMapMapRoot.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourcemap.errors.txt b/tests/baselines/reference/optionsInlineSourceMapSourcemap.errors.txt new file mode 100644 index 00000000000..e91781ccd77 --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourcemap.errors.txt @@ -0,0 +1,7 @@ +error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. + + +!!! error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. +==== tests/cases/compiler/optionsInlineSourceMapSourcemap.ts (0 errors) ==== + + var a = 10; \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourcemap.js b/tests/baselines/reference/optionsInlineSourceMapSourcemap.js new file mode 100644 index 00000000000..96d468d27da --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourcemap.js @@ -0,0 +1,7 @@ +//// [optionsInlineSourceMapSourcemap.ts] + +var a = 10; + +//// [optionsInlineSourceMapSourcemap.js] +var a = 10; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcFNvdXJjZW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9wdGlvbnNJbmxpbmVTb3VyY2VNYXBTb3VyY2VtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDIn0= \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourcemap.sourcemap.txt b/tests/baselines/reference/optionsInlineSourceMapSourcemap.sourcemap.txt new file mode 100644 index 00000000000..ecd6c4062c3 --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourcemap.sourcemap.txt @@ -0,0 +1,33 @@ +=================================================================== +JsFile: optionsInlineSourceMapSourcemap.js +mapUrl: optionsInlineSourceMapSourcemap.js.map +sourceRoot: +sources: optionsInlineSourceMapSourcemap.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsInlineSourceMapSourcemap.js +sourceFile:optionsInlineSourceMapSourcemap.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcFNvdXJjZW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9wdGlvbnNJbmxpbmVTb3VyY2VNYXBTb3VyY2VtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDIn0= \ No newline at end of file diff --git a/tests/cases/compiler/optionsInlineSourceMapMapRoot.ts b/tests/cases/compiler/optionsInlineSourceMapMapRoot.ts new file mode 100644 index 00000000000..ddea5f363c7 --- /dev/null +++ b/tests/cases/compiler/optionsInlineSourceMapMapRoot.ts @@ -0,0 +1,4 @@ +// @mapRoot: local +// @inlineSourceMap: true + +var a = 10; \ No newline at end of file diff --git a/tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts b/tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts new file mode 100644 index 00000000000..b4fdc66e309 --- /dev/null +++ b/tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts @@ -0,0 +1,4 @@ +// @sourceRoot: local +// @inlineSourceMap: true + +var a = 10; \ No newline at end of file diff --git a/tests/cases/compiler/optionsInlineSourceMapSourcemap.ts b/tests/cases/compiler/optionsInlineSourceMapSourcemap.ts new file mode 100644 index 00000000000..d78097985d8 --- /dev/null +++ b/tests/cases/compiler/optionsInlineSourceMapSourcemap.ts @@ -0,0 +1,4 @@ +// @sourcemap: true +// @inlineSourceMap: true + +var a = 10; \ No newline at end of file From 1659300ddba965da7dce4ffb12970a5879dca08a Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 11 Nov 2015 12:58:31 -0800 Subject: [PATCH 03/10] Fix the --sourceRoot and --mapRoot option handling --- src/compiler/program.ts | 10 +++--- .../reference/inlineSourceMap2.errors.txt | 2 -- .../optionsInlineSourceMapMapRoot.js | 2 +- ...ptionsInlineSourceMapMapRoot.sourcemap.txt | 10 +++--- .../optionsInlineSourceMapSourceRoot.js | 7 ++++ ...onsInlineSourceMapSourceRoot.sourcemap.txt | 33 +++++++++++++++++++ .../optionsInlineSourceMapSourceRoot.symbols | 5 +++ .../optionsInlineSourceMapSourceRoot.types | 6 ++++ ...ourcemapInlineSourcesSourceRoot.errors.txt | 7 ++++ ...nsSourcemapInlineSourcesSourceRoot.symbols | 5 --- ...ionsSourcemapInlineSourcesSourceRoot.types | 6 ---- 11 files changed, 68 insertions(+), 25 deletions(-) create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourceRoot.js create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourceRoot.sourcemap.txt create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourceRoot.symbols create mode 100644 tests/baselines/reference/optionsInlineSourceMapSourceRoot.types create mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.errors.txt delete mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols delete mode 100644 tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 08321da82e9..ca0c7d9adaa 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -990,16 +990,15 @@ namespace ts { if (options.mapRoot) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap")); } - if (options.sourceRoot) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap")); - } } - if (options.inlineSources) { if (!options.sourceMap && !options.inlineSourceMap) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided)); } + if (options.sourceRoot) { + programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSources")); + } } if (options.out && options.outFile) { @@ -1011,10 +1010,9 @@ namespace ts { if (options.mapRoot) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap")); } - if (options.sourceRoot) { + if (options.sourceRoot && !options.inlineSourceMap) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap")); } - return; } const languageVersion = options.target || ScriptTarget.ES3; diff --git a/tests/baselines/reference/inlineSourceMap2.errors.txt b/tests/baselines/reference/inlineSourceMap2.errors.txt index 24b0fddf942..26db1415593 100644 --- a/tests/baselines/reference/inlineSourceMap2.errors.txt +++ b/tests/baselines/reference/inlineSourceMap2.errors.txt @@ -1,12 +1,10 @@ error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. -error TS5053: Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'. tests/cases/compiler/inlineSourceMap2.ts(5,1): error TS2304: Cannot find name 'console'. !!! error TS5053: Option 'mapRoot' cannot be specified with option 'inlineSourceMap'. !!! error TS5053: Option 'sourceMap' cannot be specified with option 'inlineSourceMap'. -!!! error TS5053: Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'. ==== tests/cases/compiler/inlineSourceMap2.ts (1 errors) ==== // configuration errors diff --git a/tests/baselines/reference/optionsInlineSourceMapMapRoot.js b/tests/baselines/reference/optionsInlineSourceMapMapRoot.js index 6389f9eb84a..c165c49ec29 100644 --- a/tests/baselines/reference/optionsInlineSourceMapMapRoot.js +++ b/tests/baselines/reference/optionsInlineSourceMapMapRoot.js @@ -4,4 +4,4 @@ var a = 10; //// [optionsInlineSourceMapMapRoot.js] var a = 10; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9vcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt b/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt index e12e2d1096a..32e5f85d02f 100644 --- a/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt +++ b/tests/baselines/reference/optionsInlineSourceMapMapRoot.sourcemap.txt @@ -1,12 +1,12 @@ =================================================================== JsFile: optionsInlineSourceMapMapRoot.js -mapUrl: c:/TypeScript/tests/cases/compiler/optionsInlineSourceMapMapRoot.js.map +mapUrl: local/optionsInlineSourceMapMapRoot.js.map sourceRoot: -sources: optionsInlineSourceMapMapRoot.ts +sources: ../optionsInlineSourceMapMapRoot.ts =================================================================== ------------------------------------------------------------------- emittedFile:tests/cases/compiler/optionsInlineSourceMapMapRoot.js -sourceFile:optionsInlineSourceMapMapRoot.ts +sourceFile:../optionsInlineSourceMapMapRoot.ts ------------------------------------------------------------------- >>>var a = 10; 1 > @@ -15,7 +15,7 @@ sourceFile:optionsInlineSourceMapMapRoot.ts 4 > ^^^ 5 > ^^ 6 > ^ -7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > > 2 >var @@ -30,4 +30,4 @@ sourceFile:optionsInlineSourceMapMapRoot.ts 5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) 6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) --- ->>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcE1hcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9vcHRpb25zSW5saW5lU291cmNlTWFwTWFwUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourceRoot.js b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.js new file mode 100644 index 00000000000..748fae7320c --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.js @@ -0,0 +1,7 @@ +//// [optionsInlineSourceMapSourceRoot.ts] + +var a = 10; + +//// [optionsInlineSourceMapSourceRoot.js] +var a = 10; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcFNvdXJjZVJvb3QuanMiLCJzb3VyY2VSb290IjoibG9jYWwvIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwU291cmNlUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourceRoot.sourcemap.txt b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.sourcemap.txt new file mode 100644 index 00000000000..b3f81493aa9 --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.sourcemap.txt @@ -0,0 +1,33 @@ +=================================================================== +JsFile: optionsInlineSourceMapSourceRoot.js +mapUrl: optionsInlineSourceMapSourceRoot.js.map +sourceRoot: local/ +sources: optionsInlineSourceMapSourceRoot.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/compiler/optionsInlineSourceMapSourceRoot.js +sourceFile:optionsInlineSourceMapSourceRoot.ts +------------------------------------------------------------------- +>>>var a = 10; +1 > +2 >^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +7 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + > +2 >var +3 > a +4 > = +5 > 10 +6 > ; +1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(1, 5) Source(2, 5) + SourceIndex(0) +3 >Emitted(1, 6) Source(2, 6) + SourceIndex(0) +4 >Emitted(1, 9) Source(2, 9) + SourceIndex(0) +5 >Emitted(1, 11) Source(2, 11) + SourceIndex(0) +6 >Emitted(1, 12) Source(2, 12) + SourceIndex(0) +--- +>>>//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uc0lubGluZVNvdXJjZU1hcFNvdXJjZVJvb3QuanMiLCJzb3VyY2VSb290IjoibG9jYWwvIiwic291cmNlcyI6WyJvcHRpb25zSW5saW5lU291cmNlTWFwU291cmNlUm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMifQ== \ No newline at end of file diff --git a/tests/baselines/reference/optionsInlineSourceMapSourceRoot.symbols b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.symbols new file mode 100644 index 00000000000..cf8c0826d8e --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts === + +var a = 10; +>a : Symbol(a, Decl(optionsInlineSourceMapSourceRoot.ts, 1, 3)) + diff --git a/tests/baselines/reference/optionsInlineSourceMapSourceRoot.types b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.types new file mode 100644 index 00000000000..1f6a5fc9dc6 --- /dev/null +++ b/tests/baselines/reference/optionsInlineSourceMapSourceRoot.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/optionsInlineSourceMapSourceRoot.ts === + +var a = 10; +>a : number +>10 : number + diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.errors.txt b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.errors.txt new file mode 100644 index 00000000000..bfa77ff5a3e --- /dev/null +++ b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.errors.txt @@ -0,0 +1,7 @@ +error TS5053: Option 'sourceRoot' cannot be specified with option 'inlineSources'. + + +!!! error TS5053: Option 'sourceRoot' cannot be specified with option 'inlineSources'. +==== tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts (0 errors) ==== + + var a = 10; \ No newline at end of file diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols deleted file mode 100644 index 76f2dc5fdc4..00000000000 --- a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts === - -var a = 10; ->a : Symbol(a, Decl(optionsSourcemapInlineSourcesSourceRoot.ts, 1, 3)) - diff --git a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types b/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types deleted file mode 100644 index 3689afc382c..00000000000 --- a/tests/baselines/reference/optionsSourcemapInlineSourcesSourceRoot.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/optionsSourcemapInlineSourcesSourceRoot.ts === - -var a = 10; ->a : number ->10 : number - From 4720c3592df77ac0be3cef7e427e5ea4d0804f84 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Wed, 11 Nov 2015 16:51:29 -0800 Subject: [PATCH 04/10] added missing check if file is specified --- src/services/services.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 0e2dd513336..d1c87d17239 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2847,8 +2847,11 @@ namespace ts { } function sourceFileUpToDate(sourceFile: SourceFile): boolean { + if (!sourceFile) { + return false; + } let path = sourceFile.path || toPath(sourceFile.fileName, currentDirectory, getCanonicalFileName); - return sourceFile && sourceFile.version === hostCache.getVersion(path); + return sourceFile.version === hostCache.getVersion(path); } function programUpToDate(): boolean { From 40e0ffaff7eceb666e7b37e5198bb0acbcf16846 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 11 Nov 2015 23:22:12 -0800 Subject: [PATCH 05/10] Update authors for release 1.7 --- AUTHORS.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index 0ade4c31221..a733520ff4f 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -8,6 +8,7 @@ TypeScript is authored by: * Basarat Ali Syed * Ben Duffield * Bill Ticehurst +* Brett Mayen * Bryan Forbes * Caitlin Potter * Chris Bubernak @@ -17,11 +18,14 @@ TypeScript is authored by: * Dan Quirk * Daniel Rosenwasser * David Li -* Dick van den Brink -* Dirk Bumer +* Denis Nedelyaev +* Dick van den Brink +* Dirk Bäumer +* Eyas Sharaiha * Frank Wallis * Gabriel Isenberg * Gilad Peleg +* Graeme Wicksted * Guillaume Salles * Harald Niesche * Ingvar Stepanyan @@ -31,30 +35,39 @@ TypeScript is authored by: * Jason Ramsay * Jed Mao * Johannes Rieken +* John Vilk * Jonathan Bond-Caron * Jonathan Park * Jonathan Turner * Josh Kalderimis +* Julian Williams * Kagami Sascha Rosylight * Keith Mashinter +* Ken Howard * Kenji Imamula * Lorant Pinter +* Martin Všetička * Masahiro Wakame * Max Deepfield * Micah Zoltu * Mohamed Hegazy +* Nathan Shively-Sanders * Oleg Mihailik * Oleksandr Chekhovskyi * Paul van Brenk * Pedro Maltez * Philip Bulley * piloopin +* @progre +* Punya Biswal * Ron Buckton * Ryan Cavanaugh +* Ryohei Ikegami +* Sébastien Arod * Sheetal Nandi * Shengping Zhong * Shyyko Serhiy -* Simon Hrlimann +* Simon H�rlimann * Solal Pirelli * Stan Thomas * Steve Lucco @@ -63,8 +76,10 @@ TypeScript is authored by: * togru * Tomas Grubliauskas * TruongSinh Tran-Nguyen +* Viliv Vane * Vladimir Matveev * Wesley Wigham +* York Yao * Yui Tanglertsampan * Zev Spitz * Zhengbo Li \ No newline at end of file From f4929e7b1822f57abedd568edfe57d736fbaae13 Mon Sep 17 00:00:00 2001 From: mihailik Date: Thu, 12 Nov 2015 12:28:37 +0000 Subject: [PATCH 06/10] Encoding bug --- AUTHORS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AUTHORS.md b/AUTHORS.md index a733520ff4f..486a15bf47f 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -67,7 +67,7 @@ TypeScript is authored by: * Sheetal Nandi * Shengping Zhong * Shyyko Serhiy -* Simon H�rlimann +* Simon Hürlimann * Solal Pirelli * Stan Thomas * Steve Lucco @@ -82,4 +82,4 @@ TypeScript is authored by: * York Yao * Yui Tanglertsampan * Zev Spitz -* Zhengbo Li \ No newline at end of file +* Zhengbo Li From ebd1b873f168dc742f1e4681e576b1e74ff91b14 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Thu, 12 Nov 2015 10:17:47 -0800 Subject: [PATCH 07/10] always check statements in case clause --- src/compiler/checker.ts | 12 +++---- .../checkSwitchStatementIfCaseTypeIsString.js | 27 +++++++++++++++ ...kSwitchStatementIfCaseTypeIsString.symbols | 29 ++++++++++++++++ ...eckSwitchStatementIfCaseTypeIsString.types | 33 +++++++++++++++++++ .../checkSwitchStatementIfCaseTypeIsString.ts | 11 +++++++ 5 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.js create mode 100644 tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.symbols create mode 100644 tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types create mode 100644 tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7856e3f4cda..a215eda64c1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -12886,13 +12886,13 @@ namespace ts { // In a 'switch' statement, each 'case' expression must be of a type that is assignable to or from the type of the 'switch' expression. const caseType = checkExpression(caseClause.expression); - // Permit 'number[] | "foo"' to be asserted to 'string'. - if (expressionTypeIsStringLike && someConstituentTypeHasKind(caseType, TypeFlags.StringLike)) { - return; - } + const expressionTypeIsAssignableToCaseType = + // Permit 'number[] | "foo"' to be asserted to 'string'. + (expressionTypeIsStringLike && someConstituentTypeHasKind(caseType, TypeFlags.StringLike)) || + isTypeAssignableTo(expressionType, caseType); - if (!isTypeAssignableTo(expressionType, caseType)) { - // check 'expressionType isAssignableTo caseType' failed, try the reversed check and report errors if it fails + if (!expressionTypeIsAssignableToCaseType) { + // 'expressionType is not assignable to caseType', try the reversed check and report errors if it fails checkTypeAssignableTo(caseType, expressionType, caseClause.expression, /*headMessage*/ undefined); } } diff --git a/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.js b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.js new file mode 100644 index 00000000000..64ea4e67fa8 --- /dev/null +++ b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.js @@ -0,0 +1,27 @@ +//// [checkSwitchStatementIfCaseTypeIsString.ts] +declare function use(a: any): void; + +class A { + doIt(x: Array): void { + x.forEach((v) => { + switch(v) { + case "test": use(this); + } + }); + } +} + +//// [checkSwitchStatementIfCaseTypeIsString.js] +var A = (function () { + function A() { + } + A.prototype.doIt = function (x) { + var _this = this; + x.forEach(function (v) { + switch (v) { + case "test": use(_this); + } + }); + }; + return A; +})(); diff --git a/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.symbols b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.symbols new file mode 100644 index 00000000000..6bc994f2a44 --- /dev/null +++ b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts === +declare function use(a: any): void; +>use : Symbol(use, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 0, 0)) +>a : Symbol(a, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 0, 21)) + +class A { +>A : Symbol(A, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 0, 35)) + + doIt(x: Array): void { +>doIt : Symbol(doIt, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 2, 9)) +>x : Symbol(x, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 3, 9)) +>Array : Symbol(Array, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --)) + + x.forEach((v) => { +>x.forEach : Symbol(Array.forEach, Decl(lib.d.ts, --, --)) +>x : Symbol(x, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 3, 9)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, --, --)) +>v : Symbol(v, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 4, 19)) + + switch(v) { +>v : Symbol(v, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 4, 19)) + + case "test": use(this); +>use : Symbol(use, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 0, 0)) +>this : Symbol(A, Decl(checkSwitchStatementIfCaseTypeIsString.ts, 0, 35)) + } + }); + } +} diff --git a/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types new file mode 100644 index 00000000000..fa394b4e0bd --- /dev/null +++ b/tests/baselines/reference/checkSwitchStatementIfCaseTypeIsString.types @@ -0,0 +1,33 @@ +=== tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts === +declare function use(a: any): void; +>use : (a: any) => void +>a : any + +class A { +>A : A + + doIt(x: Array): void { +>doIt : (x: string[]) => void +>x : string[] +>Array : T[] + + x.forEach((v) => { +>x.forEach((v) => { switch(v) { case "test": use(this); } }) : void +>x.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>x : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>(v) => { switch(v) { case "test": use(this); } } : (v: string) => void +>v : string + + switch(v) { +>v : string + + case "test": use(this); +>"test" : string +>use(this) : void +>use : (a: any) => void +>this : this + } + }); + } +} diff --git a/tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts b/tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts new file mode 100644 index 00000000000..931f64a4b29 --- /dev/null +++ b/tests/cases/compiler/checkSwitchStatementIfCaseTypeIsString.ts @@ -0,0 +1,11 @@ +declare function use(a: any): void; + +class A { + doIt(x: Array): void { + x.forEach((v) => { + switch(v) { + case "test": use(this); + } + }); + } +} \ No newline at end of file From ea29793acd6a5e83d7177c41448b72da419bfe5f Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 12 Nov 2015 11:02:19 -0800 Subject: [PATCH 08/10] Quote only names that need to be quoted, not the reverse --- src/compiler/emitter.ts | 6 +-- .../getEmitOutputTsxFile_React.baseline | 4 +- .../reference/keywordInJsxIdentifier.js | 4 +- .../reference/tsxExternalModuleEmit2.js | 2 +- .../reference/tsxReactEmit7.errors.txt | 50 +++++++++++++++++++ tests/baselines/reference/tsxReactEmit7.js | 33 ++++++++++++ tests/cases/conformance/jsx/tsxReactEmit7.tsx | 22 ++++++++ 7 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 tests/baselines/reference/tsxReactEmit7.errors.txt create mode 100644 tests/baselines/reference/tsxReactEmit7.js create mode 100644 tests/cases/conformance/jsx/tsxReactEmit7.tsx diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index d0314649b88..372389f9c4a 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1592,13 +1592,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi /// these emit into an object literal property name, we don't need to be worried /// about keywords, just non-identifier characters function emitAttributeName(name: Identifier) { - if (/[A-Za-z_]+[\w*]/.test(name.text)) { - write("\""); + if (/^[A-Za-z_]+[\w]*$/.test(name.text)) { emit(name); - write("\""); } else { + write("\""); emit(name); + write("\""); } } diff --git a/tests/baselines/reference/getEmitOutputTsxFile_React.baseline b/tests/baselines/reference/getEmitOutputTsxFile_React.baseline index c796f8e78bc..57b55c8a1f8 100644 --- a/tests/baselines/reference/getEmitOutputTsxFile_React.baseline +++ b/tests/baselines/reference/getEmitOutputTsxFile_React.baseline @@ -17,9 +17,9 @@ declare class Bar { EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js.map -{"version":3,"file":"inputFile2.js","sourceRoot":"","sources":["inputFile2.tsx"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,QAAQ,CAAC;AACjB,IAAI,CAAC,GAAG,qBAAC,GAAG,KAAC,IAAI,GAAG,CAAE,EAAG,CAAA"}FileName : tests/cases/fourslash/inputFile2.js +{"version":3,"file":"inputFile2.js","sourceRoot":"","sources":["inputFile2.tsx"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,QAAQ,CAAC;AACjB,IAAI,CAAC,GAAG,qBAAC,GAAG,IAAC,IAAI,EAAG,CAAE,EAAG,CAAA"}FileName : tests/cases/fourslash/inputFile2.js var y = "my div"; -var x = React.createElement("div", {"name": y}); +var x = React.createElement("div", {name: y}); //# sourceMappingURL=inputFile2.js.mapFileName : tests/cases/fourslash/inputFile2.d.ts declare var y: string; declare var x: any; diff --git a/tests/baselines/reference/keywordInJsxIdentifier.js b/tests/baselines/reference/keywordInJsxIdentifier.js index 677a79138e6..39f33449dad 100644 --- a/tests/baselines/reference/keywordInJsxIdentifier.js +++ b/tests/baselines/reference/keywordInJsxIdentifier.js @@ -9,6 +9,6 @@ declare var React: any; //// [keywordInJsxIdentifier.js] React.createElement("foo", {"class-id": true}); -React.createElement("foo", {"class": true}); +React.createElement("foo", {class: true}); React.createElement("foo", {"class-id": "1"}); -React.createElement("foo", {"class": "1"}); +React.createElement("foo", {class: "1"}); diff --git a/tests/baselines/reference/tsxExternalModuleEmit2.js b/tests/baselines/reference/tsxExternalModuleEmit2.js index f8fe6096090..9968fa8d708 100644 --- a/tests/baselines/reference/tsxExternalModuleEmit2.js +++ b/tests/baselines/reference/tsxExternalModuleEmit2.js @@ -20,6 +20,6 @@ declare var Foo, React; //// [app.js] var mod_1 = require('mod'); // Should see mod_1['default'] in emit here -React.createElement(Foo, {"handler": mod_1["default"]}); +React.createElement(Foo, {handler: mod_1["default"]}); // Should see mod_1['default'] in emit here React.createElement(Foo, React.__spread({}, mod_1["default"])); diff --git a/tests/baselines/reference/tsxReactEmit7.errors.txt b/tests/baselines/reference/tsxReactEmit7.errors.txt new file mode 100644 index 00000000000..d2ab2f046e9 --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit7.errors.txt @@ -0,0 +1,50 @@ +tests/cases/conformance/jsx/tsxReactEmit7.tsx(9,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(10,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(11,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(12,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(15,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(16,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(17,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(18,10): error TS2304: Cannot find name 'React'. +tests/cases/conformance/jsx/tsxReactEmit7.tsx(19,10): error TS2304: Cannot find name 'React'. + + +==== tests/cases/conformance/jsx/tsxReactEmit7.tsx (9 errors) ==== + + declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } + } + + var m =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var n =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var o =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var p =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + + // Investigation + var a =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var b =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var c =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var d =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + var e =
; + ~~~ +!!! error TS2304: Cannot find name 'React'. + \ No newline at end of file diff --git a/tests/baselines/reference/tsxReactEmit7.js b/tests/baselines/reference/tsxReactEmit7.js new file mode 100644 index 00000000000..6340b321b9c --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit7.js @@ -0,0 +1,33 @@ +//// [tsxReactEmit7.tsx] + +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} + +var m =
; +var n =
; +var o =
; +var p =
; + +// Investigation +var a =
; +var b =
; +var c =
; +var d =
; +var e =
; + + +//// [tsxReactEmit7.js] +var m = React.createElement("div", {"x-y": "val"}); +var n = React.createElement("div", {"xx-y": "val"}); +var o = React.createElement("div", {"x-yy": "val"}); +var p = React.createElement("div", {"xx-yy": "val"}); +// Investigation +var a = React.createElement("div", {x: "val"}); +var b = React.createElement("div", {xx: "val"}); +var c = React.createElement("div", {xxx: "val"}); +var d = React.createElement("div", {xxxx: "val"}); +var e = React.createElement("div", {xxxxx: "val"}); diff --git a/tests/cases/conformance/jsx/tsxReactEmit7.tsx b/tests/cases/conformance/jsx/tsxReactEmit7.tsx new file mode 100644 index 00000000000..847a55d4719 --- /dev/null +++ b/tests/cases/conformance/jsx/tsxReactEmit7.tsx @@ -0,0 +1,22 @@ +//@jsx: react +//@module: commonjs + +//@filename: file.tsx +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} + +var m =
; +var n =
; +var o =
; +var p =
; + +// Investigation +var a =
; +var b =
; +var c =
; +var d =
; +var e =
; From 3d9978f677162c22a0b4f5e94759e448c9b4199c Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Thu, 12 Nov 2015 10:38:04 -0500 Subject: [PATCH 09/10] Use https for badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e27e7a99fa7..13e1f3e4786 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![Build Status](https://travis-ci.org/Microsoft/TypeScript.svg?branch=master)](https://travis-ci.org/Microsoft/TypeScript) -[![npm version](https://badge.fury.io/js/typescript.svg)](http://badge.fury.io/js/typescript) -[![Downloads](http://img.shields.io/npm/dm/TypeScript.svg)](https://npmjs.org/package/typescript) +[![npm version](https://badge.fury.io/js/typescript.svg)](https://www.npmjs.com/package/typescript) +[![Downloads](https://img.shields.io/npm/dm/TypeScript.svg)](https://www.npmjs.com/package/typescript) # TypeScript From f90ef92e7c566cb892dea28286f64177be8d2ab0 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 12 Nov 2015 13:37:03 -0800 Subject: [PATCH 10/10] Simplify regex a bit --- src/compiler/emitter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 372389f9c4a..84d6f091039 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1592,7 +1592,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi /// these emit into an object literal property name, we don't need to be worried /// about keywords, just non-identifier characters function emitAttributeName(name: Identifier) { - if (/^[A-Za-z_]+[\w]*$/.test(name.text)) { + if (/^[A-Za-z_]\w*$/.test(name.text)) { emit(name); } else {