diff --git a/internal/ast/parseoptions.go b/internal/ast/parseoptions.go
index 89960d37e3..a697eceb75 100644
--- a/internal/ast/parseoptions.go
+++ b/internal/ast/parseoptions.go
@@ -112,9 +112,6 @@ func isFileProbablyExternalModule(sourceFile *SourceFile) *Node {
}
func isAnExternalModuleIndicatorNode(node *Node) bool {
- if node.Flags&NodeFlagsReparsed != 0 {
- return false
- }
return HasSyntacticModifier(node, ModifierFlagsExport) ||
IsImportEqualsDeclaration(node) && IsExternalModuleReference(node.AsImportEqualsDeclaration().ModuleReference) ||
IsImportDeclaration(node) || IsExportAssignment(node) || IsExportDeclaration(node)
diff --git a/testdata/baselines/reference/compiler/jsDeclarationExportDefaultAssignmentCrash.js b/testdata/baselines/reference/compiler/jsDeclarationExportDefaultAssignmentCrash.js
index 76829952bc..0f64fde1de 100644
--- a/testdata/baselines/reference/compiler/jsDeclarationExportDefaultAssignmentCrash.js
+++ b/testdata/baselines/reference/compiler/jsDeclarationExportDefaultAssignmentCrash.js
@@ -7,6 +7,8 @@ exports.default = () => {
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var default = () => {
return 1234;
};
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt
index 2a64d7ccfa..7f1f8dbaf6 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt
@@ -2,6 +2,7 @@
/main1.ts(3,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
/main1.ts(19,4): error TS2339: Property 'default' does not exist on type '() => void'.
/main1.ts(23,8): error TS1192: Module '"/e"' has no default export.
+/main1.ts(30,4): error TS2339: Property 'default' does not exist on type '0'.
/main2.mts(4,4): error TS2339: Property 'default' does not exist on type 'typeof import("/a")'.
/main2.mts(5,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
/main2.mts(14,8): error TS1192: Module '"/e"' has no default export.
@@ -42,7 +43,7 @@
==== /g.js (0 errors) ====
exports.default = 0;
-==== /main1.ts (3 errors) ====
+==== /main1.ts (4 errors) ====
import { x, y } from "./a"; // No y
import a1 = require("./a"); // { x: 0 }
const a2 = require("./a"); // Error in TS
@@ -79,6 +80,8 @@
import g1 from "./g"; // { default: 0 }
g1.default;
+ ~~~~~~~
+!!! error TS2339: Property 'default' does not exist on type '0'.
import g2 = require("./g"); // { default: 0 }
g2.default;
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt.diff
index 63b7095c89..4a43b58d40 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt.diff
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.errors.txt.diff
@@ -8,6 +8,7 @@
/main1.ts(19,4): error TS2339: Property 'default' does not exist on type '() => void'.
/main1.ts(23,8): error TS1192: Module '"/e"' has no default export.
-/main2.mts(1,13): error TS2305: Module '"./a"' has no exported member 'y'.
++/main1.ts(30,4): error TS2339: Property 'default' does not exist on type '0'.
/main2.mts(4,4): error TS2339: Property 'default' does not exist on type 'typeof import("/a")'.
/main2.mts(5,12): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
/main2.mts(14,8): error TS1192: Module '"/e"' has no default export.
@@ -17,7 +18,7 @@
/main3.cjs(2,1): error TS8002: 'import ... =' can only be used in TypeScript files.
/main3.cjs(5,8): error TS1293: ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.
/main3.cjs(8,8): error TS1293: ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.
-@@= skipped -18, +15 lines =@@
+@@= skipped -18, +16 lines =@@
/main3.cjs(17,8): error TS1293: ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.
@@ -30,19 +31,21 @@
==== /b.ts (0 errors) ====
export default 0;
-@@= skipped -28, +26 lines =@@
- ==== /g.js (0 errors) ====
- exports.default = 0;
+@@= skipped -30, +28 lines =@@
--==== /main1.ts (4 errors) ====
-+==== /main1.ts (3 errors) ====
+ ==== /main1.ts (4 errors) ====
import { x, y } from "./a"; // No y
- ~
-!!! error TS2305: Module '"./a"' has no exported member 'y'.
import a1 = require("./a"); // { x: 0 }
const a2 = require("./a"); // Error in TS
~~~~~~~
-@@= skipped -42, +40 lines =@@
+@@= skipped -37, +35 lines =@@
+
+ import g1 from "./g"; // { default: 0 }
+ g1.default;
++ ~~~~~~~
++!!! error TS2339: Property 'default' does not exist on type '0'.
import g2 = require("./g"); // { default: 0 }
g2.default;
@@ -54,7 +57,7 @@
import a1 = require("./a"); // { x: 0 }
a1.x;
a1.default.x; // Arguably should exist but doesn't
-@@= skipped -35, +33 lines =@@
+@@= skipped -38, +38 lines =@@
~
!!! error TS1293: ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.
~
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols b/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols
index 3cace490b3..ec9a19af94 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols
@@ -133,17 +133,15 @@ import g1 from "./g"; // { default: 0 }
>g1 : Symbol(g1, Decl(main1.ts, 28, 6))
g1.default;
->g1.default : Symbol(g1.default, Decl(g.js, 0, 0))
>g1 : Symbol(g1, Decl(main1.ts, 28, 6))
->default : Symbol(g1.default, Decl(g.js, 0, 0))
import g2 = require("./g"); // { default: 0 }
>g2 : Symbol(g2, Decl(main1.ts, 29, 11))
g2.default;
->g2.default : Symbol(g1.default, Decl(g.js, 0, 0))
+>g2.default : Symbol(g1, Decl(g.js, 0, 0))
>g2 : Symbol(g2, Decl(main1.ts, 29, 11))
->default : Symbol(g1.default, Decl(g.js, 0, 0))
+>default : Symbol(g1, Decl(g.js, 0, 0))
=== /main2.mts ===
import { x, y } from "./a"; // No y
@@ -259,7 +257,7 @@ import g1 from "./g"; // { default: 0 }
const g2 = require("./g"); // { default: 0 }
>g2 : Symbol(g2, Decl(main3.cjs, 17, 5))
>require : Symbol(require)
->"./g" : Symbol(g1, Decl(g.js, 0, 0))
+>"./g" : Symbol(g2, Decl(g.js, 0, 0))
=== /main4.cjs ===
exports.x = require("./g");
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols.diff b/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols.diff
index 6d95c25f3d..2cf5e1aeb9 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols.diff
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.symbols.diff
@@ -21,7 +21,33 @@
>default : Symbol(default, Decl(g.js, 0, 0))
=== /main1.ts ===
-@@= skipped -227, +227 lines =@@
+@@= skipped -96, +96 lines =@@
+ >g1 : Symbol(g1, Decl(main1.ts, 28, 6))
+
+ g1.default;
+->g1.default : Symbol(g1.default, Decl(g.js, 0, 0))
+ >g1 : Symbol(g1, Decl(main1.ts, 28, 6))
+->default : Symbol(g1.default, Decl(g.js, 0, 0))
+
+ import g2 = require("./g"); // { default: 0 }
+ >g2 : Symbol(g2, Decl(main1.ts, 29, 11))
+
+ g2.default;
+->g2.default : Symbol(g1.default, Decl(g.js, 0, 0))
++>g2.default : Symbol(g1, Decl(g.js, 0, 0))
+ >g2 : Symbol(g2, Decl(main1.ts, 29, 11))
+->default : Symbol(g1.default, Decl(g.js, 0, 0))
++>default : Symbol(g1, Decl(g.js, 0, 0))
+
+ === /main2.mts ===
+ import { x, y } from "./a"; // No y
+@@= skipped -126, +124 lines =@@
+ const g2 = require("./g"); // { default: 0 }
+ >g2 : Symbol(g2, Decl(main3.cjs, 17, 5))
+ >require : Symbol(require)
+->"./g" : Symbol(g1, Decl(g.js, 0, 0))
++>"./g" : Symbol(g2, Decl(g.js, 0, 0))
+
=== /main4.cjs ===
exports.x = require("./g");
>exports.x : Symbol(x, Decl(main4.cjs, 0, 0))
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.types b/testdata/baselines/reference/submodule/compiler/modulePreserve4.types
index cb6b2aaba1..868beda53e 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.types
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.types
@@ -152,19 +152,19 @@ f2.default;
>default : 0
import g1 from "./g"; // { default: 0 }
->g1 : typeof g1
+>g1 : 0
g1.default;
->g1.default : 0
->g1 : typeof g1
->default : 0
+>g1.default : any
+>g1 : 0
+>default : any
import g2 = require("./g"); // { default: 0 }
->g2 : typeof g1
+>g2 : typeof g2
g2.default;
>g2.default : 0
->g2 : typeof g1
+>g2 : typeof g2
>default : 0
=== /main2.mts ===
@@ -224,10 +224,10 @@ import f2 = require("./f.cjs"); // { default: 0 }
>f2 : typeof f2
import g1 from "./g"; // { default: 0 }
->g1 : typeof g1
+>g1 : 0
import g2 = require("./g"); // { default: 0 }
->g2 : typeof g1
+>g2 : typeof g2
=== /main3.cjs ===
import { x, y } from "./a"; // No y
@@ -289,11 +289,11 @@ const f2 = require("./f.cjs"); // { default: 0 }
>"./f.cjs" : "./f.cjs"
import g1 from "./g"; // { default: 0 }
->g1 : typeof g1
+>g1 : 0
const g2 = require("./g"); // { default: 0 }
->g2 : typeof g1
->require("./g") : typeof g1
+>g2 : typeof g2
+>require("./g") : typeof g2
>require : any
>"./g" : "./g"
diff --git a/testdata/baselines/reference/submodule/compiler/modulePreserve4.types.diff b/testdata/baselines/reference/submodule/compiler/modulePreserve4.types.diff
index 0c92c48371..632c2c34ea 100644
--- a/testdata/baselines/reference/submodule/compiler/modulePreserve4.types.diff
+++ b/testdata/baselines/reference/submodule/compiler/modulePreserve4.types.diff
@@ -26,7 +26,31 @@
import a1 = require("./a"); // { x: 0 }
>a1 : typeof a1
-@@= skipped -119, +119 lines =@@
+@@= skipped -101, +101 lines =@@
+ >default : 0
+
+ import g1 from "./g"; // { default: 0 }
+->g1 : typeof g1
++>g1 : 0
+
+ g1.default;
+->g1.default : 0
+->g1 : typeof g1
+->default : 0
++>g1.default : any
++>g1 : 0
++>default : any
+
+ import g2 = require("./g"); // { default: 0 }
+->g2 : typeof g1
++>g2 : typeof g2
+
+ g2.default;
+ >g2.default : 0
+->g2 : typeof g1
++>g2 : typeof g2
+ >default : 0
+
=== /main2.mts ===
import { x, y } from "./a"; // No y
>x : 0
@@ -35,7 +59,17 @@
import a1 = require("./a"); // { x: 0 }
>a1 : typeof a1
-@@= skipped -62, +62 lines =@@
+@@= skipped -72, +72 lines =@@
+ >f2 : typeof f2
+
+ import g1 from "./g"; // { default: 0 }
+->g1 : typeof g1
++>g1 : 0
+
+ import g2 = require("./g"); // { default: 0 }
+->g2 : typeof g1
++>g2 : typeof g2
+
=== /main3.cjs ===
import { x, y } from "./a"; // No y
>x : 0
@@ -43,4 +77,18 @@
+>y : 0
import a1 = require("./a"); // Error in JS
- >a1 : typeof a1
\ No newline at end of file
+ >a1 : typeof a1
+@@= skipped -65, +65 lines =@@
+ >"./f.cjs" : "./f.cjs"
+
+ import g1 from "./g"; // { default: 0 }
+->g1 : typeof g1
++>g1 : 0
+
+ const g2 = require("./g"); // { default: 0 }
+->g2 : typeof g1
+->require("./g") : typeof g1
++>g2 : typeof g2
++>require("./g") : typeof g2
+ >require : any
+ >"./g" : "./g"
diff --git a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js
index 92605e72b4..08eb0d9824 100644
--- a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js
+++ b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js
@@ -22,6 +22,8 @@ exports.equal()
///
var myAssert = require('assert');
//// [app.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var equal = myAssert.equal;
exports.equal = myAssert.equal;
exports.equal();
diff --git a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff
index 5a80a09432..ed275fe236 100644
--- a/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff
+++ b/testdata/baselines/reference/submodule/compiler/resolveNameWithNamspace.js.diff
@@ -4,6 +4,8 @@
///
var myAssert = require('assert');
//// [app.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var equal = myAssert.equal;
exports.equal = myAssert.equal;
exports.equal();
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js
index 99874afc29..54f30a42d6 100644
--- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js
+++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js
@@ -8,6 +8,8 @@ exports.y = 2;
//// [assignmentToVoidZero1.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
// #38552
export var y = exports.x = void 0;
// #38552
diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff
index 704fed10be..714b31fe2a 100644
--- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero1.js.diff
@@ -1,11 +1,14 @@
--- old.assignmentToVoidZero1.js
+++ new.assignmentToVoidZero1.js
-@@= skipped -8, +8 lines =@@
+@@= skipped -7, +7 lines =@@
+
//// [assignmentToVoidZero1.js]
- // #38552
-+export var y = exports.x = void 0;
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+// #38552
++export var y = exports.x = void 0;
+ // #38552
exports.y = exports.x = void 0;
+export var x = 1;
exports.x = 1;
diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js
index b9180916a5..9b3221fcfd 100644
--- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js
+++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js
@@ -21,6 +21,8 @@ j + k
//// [assignmentToVoidZero2.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var j = 1;
exports.j = 1;
export var k = void 0;
diff --git a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff
index bc38ad6809..1e6837ef28 100644
--- a/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/assignmentToVoidZero2.js.diff
@@ -4,13 +4,15 @@
//// [assignmentToVoidZero2.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var j = 1;
exports.j = 1;
+export var k = void 0;
exports.k = void 0;
var o = {};
o.x = 1;
-@@= skipped -20, +22 lines =@@
+@@= skipped -20, +24 lines =@@
//// [assignmentToVoidZero2.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js
index 9f452a1380..fd0f4efd9f 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js
+++ b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js
@@ -18,6 +18,8 @@ var diddy = funky(1)
//// [commonJSAliasedExport.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const donkey = (ast) => ast;
function funky(declaration) {
return false;
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff
index bc1e674cb3..8f7d21d18b 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/commonJSAliasedExport.js.diff
@@ -1,6 +1,13 @@
--- old.commonJSAliasedExport.js
+++ new.commonJSAliasedExport.js
-@@= skipped -22, +22 lines =@@
+@@= skipped -17, +17 lines =@@
+
+
+ //// [commonJSAliasedExport.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ const donkey = (ast) => ast;
+ function funky(declaration) {
return false;
}
module.exports = donkey;
@@ -8,7 +15,7 @@
module.exports.funky = funky;
//// [bug43713.js]
const { funky } = require('./commonJSAliasedExport');
-@@= skipped -9, +10 lines =@@
+@@= skipped -14, +17 lines =@@
//// [commonJSAliasedExport.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js
index 75639dc8fd..6d25b48359 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js
@@ -18,6 +18,7 @@ exports.K = K;
//// [mod1.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
class K {
values() {
return new K();
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff
index 6f1f5c052c..b8983fb6eb 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportClassTypeReference.js.diff
@@ -1,6 +1,12 @@
--- old.commonJSImportClassTypeReference.js
+++ new.commonJSImportClassTypeReference.js
-@@= skipped -22, +22 lines =@@
+@@= skipped -17, +17 lines =@@
+
+ //// [mod1.js]
+ "use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ class K {
+ values() {
return new K();
}
}
@@ -8,7 +14,7 @@
exports.K = K;
//// [main.js]
"use strict";
-@@= skipped -11, +12 lines =@@
+@@= skipped -16, +18 lines =@@
//// [mod1.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js
index ab7a08c876..60789d061e 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js
@@ -16,6 +16,7 @@ exports.K = class K {
//// [mod1.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var K = class K {
values() {
}
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff
index b9fb130cc2..eedc85ac50 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportExportedClassExpression.js.diff
@@ -4,6 +4,7 @@
//// [mod1.js]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var K = class K {
+ values() {
+ }
@@ -11,7 +12,7 @@
exports.K = class K {
values() {
}
-@@= skipped -14, +18 lines =@@
+@@= skipped -14, +19 lines =@@
//// [mod1.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js
index f09940564a..bd6dfdc330 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js
@@ -19,6 +19,7 @@ exports.K = NS.K;
//// [mod1.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
var NS = {};
NS.K = class {
values() {
diff --git a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff
index 670320d425..263c8c011e 100644
--- a/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/commonJSImportNestedClassTypeReference.js.diff
@@ -1,6 +1,13 @@
--- old.commonJSImportNestedClassTypeReference.js
+++ new.commonJSImportNestedClassTypeReference.js
-@@= skipped -24, +24 lines =@@
+@@= skipped -18, +18 lines =@@
+
+ //// [mod1.js]
+ "use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ var NS = {};
+ NS.K = class {
+ values() {
return new NS.K();
}
};
@@ -8,7 +15,7 @@
exports.K = NS.K;
//// [main.js]
"use strict";
-@@= skipped -11, +12 lines =@@
+@@= skipped -17, +19 lines =@@
//// [mod1.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js
index d37c0296df..31c1fad1c3 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js
@@ -18,6 +18,8 @@ class Bar {
}
module.exports = Bar;
//// [cls.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const Bar = require("./bar");
const Strings = {
a: "A",
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff
index 568fd10cbb..c93936877c 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassExtendsVisibility.js.diff
@@ -1,6 +1,15 @@
--- old.jsDeclarationsClassExtendsVisibility.js
+++ new.jsDeclarationsClassExtendsVisibility.js
-@@= skipped -25, +25 lines =@@
+@@= skipped -17, +17 lines =@@
+ }
+ module.exports = Bar;
+ //// [cls.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ const Bar = require("./bar");
+ const Strings = {
+ a: "A",
+@@= skipped -8, +10 lines =@@
class Foo extends Bar {
}
module.exports = Foo;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js
index 701b2a08ae..7e863089eb 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js
@@ -26,6 +26,8 @@ module.exports.Strings = Strings
//// [source.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
class Handler {
static get OPTIONS() {
return 1;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff
index 56d9a66f0f..bdce0b0154 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsClassStatic.js.diff
@@ -1,6 +1,15 @@
--- old.jsDeclarationsClassStatic.js
+++ new.jsDeclarationsClassStatic.js
-@@= skipped -38, +38 lines =@@
+@@= skipped -25, +25 lines =@@
+
+
+ //// [source.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ class Handler {
+ static get OPTIONS() {
+ return 1;
+@@= skipped -13, +15 lines =@@
b: "B"
};
module.exports = Handler;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js
index 965f8d6f9f..50e909346c 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
function validate() { }
exports.default = validate;
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const m = require("./exporter");
module.exports = m.default;
export var memberName = "thing";
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff
index de434879a8..45ae305284 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsCrossfileMerge.js.diff
@@ -1,7 +1,11 @@
--- old.jsDeclarationsCrossfileMerge.js
+++ new.jsDeclarationsCrossfileMerge.js
-@@= skipped -19, +19 lines =@@
+@@= skipped -17, +17 lines =@@
+ function validate() { }
+ exports.default = validate;
//// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
const m = require("./exporter");
module.exports = m.default;
+export var memberName = "thing";
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js
index c3a4dc55a8..3a002970dd 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js
@@ -17,6 +17,8 @@ module.exports.Sub = class {
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
module.exports = class {
/**
* @param {number} p
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff
index 66e636fb2d..635641bdd8 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js.diff
@@ -1,6 +1,15 @@
--- old.jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js
+++ new.jsDeclarationsExportAssignedClassExpressionAnonymousWithSub.js
-@@= skipped -24, +24 lines =@@
+@@= skipped -16, +16 lines =@@
+
+
+ //// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ module.exports = class {
+ /**
+ * @param {number} p
+@@= skipped -8, +10 lines =@@
this.t = 12 + p;
}
};
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js
index 11608eeaba..1264eecc39 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js
@@ -16,6 +16,8 @@ module.exports.Another = Q;
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
class A {
member = new Q();
}
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff
index cf99f1dbf3..79f6d0a917 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassExpressionShadowing.js.diff
@@ -1,8 +1,11 @@
--- old.jsDeclarationsExportAssignedClassExpressionShadowing.js
+++ new.jsDeclarationsExportAssignedClassExpressionShadowing.js
-@@= skipped -16, +16 lines =@@
+@@= skipped -15, +15 lines =@@
+
//// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
class A {
- constructor() {
- this.member = new Q();
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js
index 7a15e1b3e4..162fa15072 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js
@@ -11,6 +11,8 @@ module.exports = new Foo();
module.exports.additional = 20;
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
class Foo {
static stat = 10;
member = 10;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff
index 026beccd0a..84b0f01f1b 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedClassInstance3.js.diff
@@ -1,8 +1,11 @@
--- old.jsDeclarationsExportAssignedClassInstance3.js
+++ new.jsDeclarationsExportAssignedClassInstance3.js
-@@= skipped -11, +11 lines =@@
+@@= skipped -10, +10 lines =@@
+ module.exports.additional = 20;
//// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
class Foo {
- constructor() {
- this.member = 10;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js
index b793c3672e..50c7df5365 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js
@@ -12,6 +12,8 @@ module.exports.MyClass.prototype = {
//// [jsDeclarationsExportAssignedConstructorFunction.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
/** @constructor */
export var MyClass = function () {
this.x = 1;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff
index b86c8da61d..a1e3ca15d5 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunction.js.diff
@@ -1,17 +1,19 @@
--- old.jsDeclarationsExportAssignedConstructorFunction.js
+++ new.jsDeclarationsExportAssignedConstructorFunction.js
-@@= skipped -12, +12 lines =@@
+@@= skipped -11, +11 lines =@@
+
//// [jsDeclarationsExportAssignedConstructorFunction.js]
- /** @constructor */
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
++/** @constructor */
+export var MyClass = function () {
+ this.x = 1;
+};
-+/** @constructor */
+ /** @constructor */
module.exports.MyClass = function () {
this.x = 1;
- };
-@@= skipped -10, +14 lines =@@
+@@= skipped -11, +17 lines =@@
//// [jsDeclarationsExportAssignedConstructorFunction.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js
index f470e836cf..ace1f067bb 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js
@@ -14,6 +14,8 @@ module.exports.Sub.prototype = { }
//// [jsDeclarationsExportAssignedConstructorFunctionWithSub.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
/**
* @param {number} p
*/
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff
index 8816133088..dfb3d03971 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignedConstructorFunctionWithSub.js.diff
@@ -1,6 +1,14 @@
--- old.jsDeclarationsExportAssignedConstructorFunctionWithSub.js
+++ new.jsDeclarationsExportAssignedConstructorFunctionWithSub.js
-@@= skipped -19, +19 lines =@@
+@@= skipped -13, +13 lines =@@
+
+
+ //// [jsDeclarationsExportAssignedConstructorFunctionWithSub.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * @param {number} p
+ */
module.exports = function (p) {
this.t = 12 + p;
};
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js
index decef94386..170d8236ae 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js
@@ -16,6 +16,8 @@ module.exports.Strings = Strings;
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const Strings = {
a: "A",
b: "B"
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff
index 50b4c75cb5..71fa78bdfe 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportAssignmentExpressionPlusSecondary.js.diff
@@ -1,6 +1,15 @@
--- old.jsDeclarationsExportAssignmentExpressionPlusSecondary.js
+++ new.jsDeclarationsExportAssignmentExpressionPlusSecondary.js
-@@= skipped -26, +26 lines =@@
+@@= skipped -15, +15 lines =@@
+
+
+ //// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ const Strings = {
+ a: "A",
+ b: "B"
+@@= skipped -11, +13 lines =@@
item: "ok"
}
};
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js
index abbe90cc0f..2eed1f908e 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js
@@ -236,10 +236,14 @@ module.exports = { ns };
const ns = require("./cls");
module.exports = ns;
//// [cjs3.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const ns = require("./cls");
export var ns = ns;
module.exports.ns = ns;
//// [cjs4.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const ns = require("./cls");
export var names = ns;
module.exports.names = ns;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff
index 0a5572f0e2..b92e6340bb 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportForms.js.diff
@@ -1,18 +1,23 @@
--- old.jsDeclarationsExportForms.js
+++ new.jsDeclarationsExportForms.js
-@@= skipped -236, +236 lines =@@
+@@= skipped -235, +235 lines =@@
+ const ns = require("./cls");
module.exports = ns;
//// [cjs3.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
const ns = require("./cls");
+export var ns = ns;
module.exports.ns = ns;
//// [cjs4.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
const ns = require("./cls");
+export var names = ns;
module.exports.names = ns;
//// [includeAll.js]
"use strict";
-@@= skipped -20, +22 lines =@@
+@@= skipped -21, +27 lines =@@
//// [cls.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js
index 8030300917..a9880502fe 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js
@@ -10,6 +10,8 @@ module.exports = Foo;
module.exports.Strings = Strings;
//// [cls.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const Strings = {
a: "A",
b: "B"
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff
index da5054bf0e..679f73626b 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsExportSubAssignments.js.diff
@@ -1,6 +1,15 @@
--- old.jsDeclarationsExportSubAssignments.js
+++ new.jsDeclarationsExportSubAssignments.js
-@@= skipped -16, +16 lines =@@
+@@= skipped -9, +9 lines =@@
+ module.exports.Strings = Strings;
+
+ //// [cls.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+ const Strings = {
+ a: "A",
+ b: "B"
+@@= skipped -7, +9 lines =@@
class Foo {
}
module.exports = Foo;
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js
index 6ab4694cfb..e8f0949e96 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js
@@ -62,6 +62,8 @@ module.exports.j = function j() {}
//// [index.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var a = function a() { };
module.exports.a = function a() { };
export var b = function b() { };
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff
index ded27f1704..014da86514 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsFunctionsCjs.js.diff
@@ -4,6 +4,8 @@
//// [index.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var a = function a() { };
module.exports.a = function a() { };
+export var b = function b() { };
@@ -13,7 +15,7 @@
module.exports.c = function c() { };
module.exports.c.Cls = class {
};
-@@= skipped -11, +14 lines =@@
+@@= skipped -11, +16 lines =@@
* @param {number} b
* @return {string}
*/
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js
index 82f51d1312..0469b5358c 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js
@@ -15,7 +15,9 @@ module.exports.A.B = {
//// [index.js]
+"use strict";
///
+Object.defineProperty(exports, "__esModule", { value: true });
const Something = require("fs").Something;
export var A = {};
module.exports.A = {};
diff --git a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff
index db8c49d5c2..afd05f2739 100644
--- a/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsDeclarationsTypeReferences3.js.diff
@@ -1,14 +1,18 @@
--- old.jsDeclarationsTypeReferences3.js
+++ new.jsDeclarationsTypeReferences3.js
-@@= skipped -16, +16 lines =@@
+@@= skipped -14, +14 lines =@@
+
+
//// [index.js]
++"use strict";
///
++Object.defineProperty(exports, "__esModule", { value: true });
const Something = require("fs").Something;
+export var A = {};
module.exports.A = {};
module.exports.A.B = {
thing: new Something()
-@@= skipped -7, +8 lines =@@
+@@= skipped -9, +12 lines =@@
//// [index.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js
index b87ec78361..65b2dbedb4 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js
@@ -8,6 +8,8 @@ exports["Does not work yet"] = D;
//// [moduleExportAliasElementAccessExpression.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
function D() { }
export var D = D;
exports["D"] = D;
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff
index 1160f9da4e..5d2f55b2a9 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasElementAccessExpression.js.diff
@@ -1,8 +1,11 @@
--- old.moduleExportAliasElementAccessExpression.js
+++ new.moduleExportAliasElementAccessExpression.js
-@@= skipped -8, +8 lines =@@
+@@= skipped -7, +7 lines =@@
+
//// [moduleExportAliasElementAccessExpression.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
function D() { }
+export var D = D;
exports["D"] = D;
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types b/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types
index 87be3adf53..2a68c7781f 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types
@@ -20,6 +20,6 @@ module.exports = alias
=== importer.js ===
import('./bug28014')
->import('./bug28014') : Promise<{ default: () => void; }>
+>import('./bug28014') : Promise<() => void>
>'./bug28014' : "./bug28014"
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types.diff b/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types.diff
index def0b9d725..23aa34c07b 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types.diff
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportAliasImported.types.diff
@@ -31,5 +31,5 @@
=== importer.js ===
import('./bug28014')
->import('./bug28014') : Promise<{ version: 1; default: { (): void; version: 1; }; }>
-+>import('./bug28014') : Promise<{ default: () => void; }>
++>import('./bug28014') : Promise<() => void>
>'./bug28014' : "./bug28014"
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js
index f761fbaae6..4ee7030d20 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js
@@ -14,6 +14,7 @@ apply()
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var apply = undefined;
exports.apply = undefined;
function a() { }
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff
index 10fb671f79..da8d0fc2d2 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias.js.diff
@@ -4,6 +4,7 @@
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var apply = undefined;
exports.apply = undefined;
function a() { }
@@ -12,7 +13,7 @@
exports.apply = a;
exports.apply();
//// [test.js]
-@@= skipped -12, +14 lines =@@
+@@= skipped -12, +15 lines =@@
//// [moduleExportAliasDuplicateAlias.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js
index fc1e785f89..464a441258 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js
@@ -14,6 +14,7 @@ apply()
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var apply = undefined;
module.exports.apply = undefined;
function a() { }
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff
index 9bc4e9ec7d..51dfb3c53a 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias2.js.diff
@@ -4,6 +4,7 @@
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var apply = undefined;
module.exports.apply = undefined;
function a() { }
@@ -13,7 +14,7 @@
module.exports.apply = a;
module.exports.apply();
//// [test.js]
-@@= skipped -12, +15 lines =@@
+@@= skipped -12, +16 lines =@@
//// [moduleExportAliasDuplicateAlias.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js
index d4b7eaebe8..1826f857f2 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js
@@ -17,6 +17,7 @@ const result = apply.toFixed()
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var apply = undefined;
exports.apply = undefined;
export var apply = undefined;
diff --git a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff
index 9142a22536..e091ce0595 100644
--- a/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/moduleExportDuplicateAlias3.js.diff
@@ -4,6 +4,7 @@
//// [moduleExportAliasDuplicateAlias.js]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var apply = undefined;
exports.apply = undefined;
+export var apply = undefined;
@@ -19,7 +20,7 @@
exports.apply = 1;
//// [test.js]
"use strict";
-@@= skipped -15, +20 lines =@@
+@@= skipped -15, +21 lines =@@
//// [moduleExportAliasDuplicateAlias.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js
index 272a5a007a..ea7a565f31 100644
--- a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js
+++ b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js
@@ -15,6 +15,8 @@ chalk
//// [mod1.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
const chalk = {
grey: {}
};
diff --git a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff
index fc8696b806..09d98a3c3a 100644
--- a/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff
+++ b/testdata/baselines/reference/submodule/conformance/nestedDestructuringOfRequire.js.diff
@@ -1,6 +1,11 @@
--- old.nestedDestructuringOfRequire.js
+++ new.nestedDestructuringOfRequire.js
-@@= skipped -17, +17 lines =@@
+@@= skipped -14, +14 lines =@@
+
+
+ //// [mod1.js]
++"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
const chalk = {
grey: {}
};
@@ -8,7 +13,7 @@
module.exports.chalk = chalk;
//// [main.js]
const { chalk: { grey } } = require('./mod1');
-@@= skipped -8, +9 lines =@@
+@@= skipped -11, +14 lines =@@
//// [mod1.d.ts]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js
index f87b35ecee..f6e3da8b76 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js
@@ -25,6 +25,7 @@ three.foo;
module.exports = {};
//// [2.cjs]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff
index df2d0460b3..b265d7d75c 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node18).js.diff
@@ -4,6 +4,7 @@
module.exports = {};
//// [2.cjs]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js
index f87b35ecee..f6e3da8b76 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js
@@ -25,6 +25,7 @@ three.foo;
module.exports = {};
//// [2.cjs]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js.diff
index 1d46e50685..f8ade29526 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=node20).js.diff
@@ -4,6 +4,7 @@
module.exports = {};
//// [2.cjs]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js
index f87b35ecee..f6e3da8b76 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js
@@ -25,6 +25,7 @@ three.foo;
module.exports = {};
//// [2.cjs]
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff
index d6396c3e8a..5016b99722 100644
--- a/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/nodeModulesCJSEmit1(module=nodenext).js.diff
@@ -4,6 +4,7 @@
module.exports = {};
//// [2.cjs]
"use strict";
++Object.defineProperty(exports, "__esModule", { value: true });
+export var foo = 0;
exports.foo = 0;
//// [3.cjs]
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt
deleted file mode 100644
index 09f1fbd268..0000000000
--- a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-/a.ts(2,5): error TS2339: Property 'bar' does not exist on type 'typeof import("/node_modules/foo/index")'.
-
-
-==== /a.ts (1 errors) ====
- import foo from "foo";
- foo.bar();
- ~~~
-!!! error TS2339: Property 'bar' does not exist on type 'typeof import("/node_modules/foo/index")'.
-
-==== /node_modules/foo/index.js (0 errors) ====
- exports.default = { bar() { return 0; } }
-
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt.diff b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt.diff
new file mode 100644
index 0000000000..1d8aabb7f2
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.errors.txt.diff
@@ -0,0 +1,16 @@
+--- old.untypedModuleImport_allowJs.errors.txt
++++ new.untypedModuleImport_allowJs.errors.txt
+@@= skipped -0, +0 lines =@@
+-/a.ts(2,5): error TS2339: Property 'bar' does not exist on type 'typeof import("/node_modules/foo/index")'.
+-
+-
+-==== /a.ts (1 errors) ====
+- import foo from "foo";
+- foo.bar();
+- ~~~
+-!!! error TS2339: Property 'bar' does not exist on type 'typeof import("/node_modules/foo/index")'.
+-
+-==== /node_modules/foo/index.js (0 errors) ====
+- exports.default = { bar() { return 0; } }
+-
++
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols
index 99801b5b7e..6493017cb5 100644
--- a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols
+++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols
@@ -5,7 +5,9 @@ import foo from "foo";
>foo : Symbol(foo, Decl(a.ts, 0, 6))
foo.bar();
+>foo.bar : Symbol(bar, Decl(index.js, 0, 19))
>foo : Symbol(foo, Decl(a.ts, 0, 6))
+>bar : Symbol(bar, Decl(index.js, 0, 19))
=== /node_modules/foo/index.js ===
exports.default = { bar() { return 0; } }
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols.diff b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols.diff
index 3fa69a4d35..09efca276a 100644
--- a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols.diff
+++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.symbols.diff
@@ -1,6 +1,13 @@
--- old.untypedModuleImport_allowJs.symbols
+++ new.untypedModuleImport_allowJs.symbols
-@@= skipped -9, +9 lines =@@
+@@= skipped -4, +4 lines =@@
+ >foo : Symbol(foo, Decl(a.ts, 0, 6))
+
+ foo.bar();
++>foo.bar : Symbol(bar, Decl(index.js, 0, 19))
+ >foo : Symbol(foo, Decl(a.ts, 0, 6))
++>bar : Symbol(bar, Decl(index.js, 0, 19))
+
=== /node_modules/foo/index.js ===
exports.default = { bar() { return 0; } }
>exports.default : Symbol(default, Decl(index.js, 0, 0))
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types
index 8965344e10..114f087c64 100644
--- a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types
+++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types
@@ -2,13 +2,13 @@
=== /a.ts ===
import foo from "foo";
->foo : typeof foo
+>foo : { bar(): number; }
foo.bar();
->foo.bar() : any
->foo.bar : any
->foo : typeof foo
->bar : any
+>foo.bar() : number
+>foo.bar : () => number
+>foo : { bar(): number; }
+>bar : () => number
=== /node_modules/foo/index.js ===
exports.default = { bar() { return 0; } }
diff --git a/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types.diff b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types.diff
new file mode 100644
index 0000000000..ede066d4fe
--- /dev/null
+++ b/testdata/baselines/reference/submodule/conformance/untypedModuleImport_allowJs.types.diff
@@ -0,0 +1,21 @@
+--- old.untypedModuleImport_allowJs.types
++++ new.untypedModuleImport_allowJs.types
+@@= skipped -1, +1 lines =@@
+
+ === /a.ts ===
+ import foo from "foo";
+->foo : typeof foo
++>foo : { bar(): number; }
+
+ foo.bar();
+->foo.bar() : any
+->foo.bar : any
+->foo : typeof foo
+->bar : any
++>foo.bar() : number
++>foo.bar : () => number
++>foo : { bar(): number; }
++>bar : () => number
+
+ === /node_modules/foo/index.js ===
+ exports.default = { bar() { return 0; } }
\ No newline at end of file