diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 957b38c67de..065fb3a9737 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -322,7 +322,7 @@ namespace ts { description: Diagnostics.Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking }, { - name: "emitNonStrictModules", + name: "noImplicitUseStrict", type: "boolean", description: Diagnostics.Do_not_emit_use_strict_directives_in_module_output } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 15edb022b11..7d602c58400 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7179,7 +7179,7 @@ const _super = (function (geti, seti) { write(`], function(${exportFunctionForFile}, ${contextObjectForFile}) {`); writeLine(); increaseIndent(); - const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/ !compilerOptions.emitNonStrictModules); + const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/ !compilerOptions.noImplicitUseStrict); writeLine(); write(`var __moduleName = ${contextObjectForFile} && ${contextObjectForFile}.id;`); writeLine(); @@ -7285,7 +7285,7 @@ const _super = (function (geti, seti) { writeModuleName(node, emitRelativePathAsModuleName); emitAMDDependencies(node, /*includeNonAmdDependencies*/ true, emitRelativePathAsModuleName); increaseIndent(); - const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/!compilerOptions.emitNonStrictModules); + const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/!compilerOptions.noImplicitUseStrict); emitExportStarHelper(); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); @@ -7297,7 +7297,7 @@ const _super = (function (geti, seti) { } function emitCommonJSModule(node: SourceFile) { - const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ false, /*ensureUseStrict*/ !compilerOptions.emitNonStrictModules); + const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ false, /*ensureUseStrict*/ !compilerOptions.noImplicitUseStrict); emitEmitHelpers(node); collectExternalModuleInfo(node); emitExportStarHelper(); @@ -7326,7 +7326,7 @@ const _super = (function (geti, seti) { })(`); emitAMDFactoryHeader(dependencyNames); increaseIndent(); - const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/ !compilerOptions.emitNonStrictModules); + const startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true, /*ensureUseStrict*/ !compilerOptions.noImplicitUseStrict); emitExportStarHelper(); emitCaptureThisForNodeIfNecessary(node); emitLinesStartingAt(node.statements, startIndex); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 90a6a9a6752..1b992bb11ef 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2422,7 +2422,7 @@ namespace ts { traceModuleResolution?: boolean; allowSyntheticDefaultImports?: boolean; allowJs?: boolean; - emitNonStrictModules?: boolean; + noImplicitUseStrict?: boolean; /* @internal */ stripInternal?: boolean; // Skip checking lib.d.ts to help speed up tests. diff --git a/tests/baselines/reference/emitNonStrictModules_amd.symbols b/tests/baselines/reference/emitNonStrictModules_amd.symbols deleted file mode 100644 index 1590ea05ad4..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_amd.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_amd.ts === - -export var x = 0; ->x : Symbol(x, Decl(emitNonStrictModules_amd.ts, 1, 10)) - diff --git a/tests/baselines/reference/emitNonStrictModules_amd.types b/tests/baselines/reference/emitNonStrictModules_amd.types deleted file mode 100644 index 650df648d8d..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_amd.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_amd.ts === - -export var x = 0; ->x : number ->0 : number - diff --git a/tests/baselines/reference/emitNonStrictModules_commonjs.js b/tests/baselines/reference/emitNonStrictModules_commonjs.js deleted file mode 100644 index 7a2d0720015..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_commonjs.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [emitNonStrictModules_commonjs.ts] - -export var x = 0; - -//// [emitNonStrictModules_commonjs.js] -exports.x = 0; diff --git a/tests/baselines/reference/emitNonStrictModules_commonjs.symbols b/tests/baselines/reference/emitNonStrictModules_commonjs.symbols deleted file mode 100644 index 36b487f34d1..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_commonjs.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_commonjs.ts === - -export var x = 0; ->x : Symbol(x, Decl(emitNonStrictModules_commonjs.ts, 1, 10)) - diff --git a/tests/baselines/reference/emitNonStrictModules_commonjs.types b/tests/baselines/reference/emitNonStrictModules_commonjs.types deleted file mode 100644 index f8a24d53641..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_commonjs.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_commonjs.ts === - -export var x = 0; ->x : number ->0 : number - diff --git a/tests/baselines/reference/emitNonStrictModules_es6.js b/tests/baselines/reference/emitNonStrictModules_es6.js deleted file mode 100644 index 535afff7730..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_es6.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [emitNonStrictModules_es6.ts] - -export var x = 0; - -//// [emitNonStrictModules_es6.js] -export var x = 0; diff --git a/tests/baselines/reference/emitNonStrictModules_es6.symbols b/tests/baselines/reference/emitNonStrictModules_es6.symbols deleted file mode 100644 index 884189014b0..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_es6.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_es6.ts === - -export var x = 0; ->x : Symbol(x, Decl(emitNonStrictModules_es6.ts, 1, 10)) - diff --git a/tests/baselines/reference/emitNonStrictModules_es6.types b/tests/baselines/reference/emitNonStrictModules_es6.types deleted file mode 100644 index f3208e247da..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_es6.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_es6.ts === - -export var x = 0; ->x : number ->0 : number - diff --git a/tests/baselines/reference/emitNonStrictModules_system.symbols b/tests/baselines/reference/emitNonStrictModules_system.symbols deleted file mode 100644 index b772eafe447..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_system.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_system.ts === - -export var x = 0; ->x : Symbol(x, Decl(emitNonStrictModules_system.ts, 1, 10)) - diff --git a/tests/baselines/reference/emitNonStrictModules_system.types b/tests/baselines/reference/emitNonStrictModules_system.types deleted file mode 100644 index 352381db379..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_system.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_system.ts === - -export var x = 0; ->x : number ->0 : number - diff --git a/tests/baselines/reference/emitNonStrictModules_umd.symbols b/tests/baselines/reference/emitNonStrictModules_umd.symbols deleted file mode 100644 index 23af4139243..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_umd.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_umd.ts === - -export var x = 0; ->x : Symbol(x, Decl(emitNonStrictModules_umd.ts, 1, 10)) - diff --git a/tests/baselines/reference/emitNonStrictModules_umd.types b/tests/baselines/reference/emitNonStrictModules_umd.types deleted file mode 100644 index 83c55b1d4cd..00000000000 --- a/tests/baselines/reference/emitNonStrictModules_umd.types +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/compiler/emitNonStrictModules_umd.ts === - -export var x = 0; ->x : number ->0 : number - diff --git a/tests/baselines/reference/emitNonStrictModules_amd.js b/tests/baselines/reference/noImplicitUseStrict_amd.js similarity index 57% rename from tests/baselines/reference/emitNonStrictModules_amd.js rename to tests/baselines/reference/noImplicitUseStrict_amd.js index f2a746280ac..ac15f548c47 100644 --- a/tests/baselines/reference/emitNonStrictModules_amd.js +++ b/tests/baselines/reference/noImplicitUseStrict_amd.js @@ -1,8 +1,8 @@ -//// [emitNonStrictModules_amd.ts] +//// [noImplicitUseStrict_amd.ts] export var x = 0; -//// [emitNonStrictModules_amd.js] +//// [noImplicitUseStrict_amd.js] define(["require", "exports"], function (require, exports) { exports.x = 0; }); diff --git a/tests/baselines/reference/noImplicitUseStrict_amd.symbols b/tests/baselines/reference/noImplicitUseStrict_amd.symbols new file mode 100644 index 00000000000..de1faa2213c --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_amd.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/noImplicitUseStrict_amd.ts === + +export var x = 0; +>x : Symbol(x, Decl(noImplicitUseStrict_amd.ts, 1, 10)) + diff --git a/tests/baselines/reference/noImplicitUseStrict_amd.types b/tests/baselines/reference/noImplicitUseStrict_amd.types new file mode 100644 index 00000000000..c9e1b5749dc --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_amd.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/noImplicitUseStrict_amd.ts === + +export var x = 0; +>x : number +>0 : number + diff --git a/tests/baselines/reference/noImplicitUseStrict_commonjs.js b/tests/baselines/reference/noImplicitUseStrict_commonjs.js new file mode 100644 index 00000000000..9c726938f04 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_commonjs.js @@ -0,0 +1,6 @@ +//// [noImplicitUseStrict_commonjs.ts] + +export var x = 0; + +//// [noImplicitUseStrict_commonjs.js] +exports.x = 0; diff --git a/tests/baselines/reference/noImplicitUseStrict_commonjs.symbols b/tests/baselines/reference/noImplicitUseStrict_commonjs.symbols new file mode 100644 index 00000000000..af53dc272d2 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_commonjs.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/noImplicitUseStrict_commonjs.ts === + +export var x = 0; +>x : Symbol(x, Decl(noImplicitUseStrict_commonjs.ts, 1, 10)) + diff --git a/tests/baselines/reference/noImplicitUseStrict_commonjs.types b/tests/baselines/reference/noImplicitUseStrict_commonjs.types new file mode 100644 index 00000000000..9999d3b94ba --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_commonjs.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/noImplicitUseStrict_commonjs.ts === + +export var x = 0; +>x : number +>0 : number + diff --git a/tests/baselines/reference/noImplicitUseStrict_es6.js b/tests/baselines/reference/noImplicitUseStrict_es6.js new file mode 100644 index 00000000000..27dbbc7ea79 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_es6.js @@ -0,0 +1,6 @@ +//// [noImplicitUseStrict_es6.ts] + +export var x = 0; + +//// [noImplicitUseStrict_es6.js] +export var x = 0; diff --git a/tests/baselines/reference/noImplicitUseStrict_es6.symbols b/tests/baselines/reference/noImplicitUseStrict_es6.symbols new file mode 100644 index 00000000000..31bc1904ff9 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_es6.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/noImplicitUseStrict_es6.ts === + +export var x = 0; +>x : Symbol(x, Decl(noImplicitUseStrict_es6.ts, 1, 10)) + diff --git a/tests/baselines/reference/noImplicitUseStrict_es6.types b/tests/baselines/reference/noImplicitUseStrict_es6.types new file mode 100644 index 00000000000..838c7316be0 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_es6.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/noImplicitUseStrict_es6.ts === + +export var x = 0; +>x : number +>0 : number + diff --git a/tests/baselines/reference/emitNonStrictModules_system.js b/tests/baselines/reference/noImplicitUseStrict_system.js similarity index 73% rename from tests/baselines/reference/emitNonStrictModules_system.js rename to tests/baselines/reference/noImplicitUseStrict_system.js index f1ad93f0009..cf5a7e1b261 100644 --- a/tests/baselines/reference/emitNonStrictModules_system.js +++ b/tests/baselines/reference/noImplicitUseStrict_system.js @@ -1,8 +1,8 @@ -//// [emitNonStrictModules_system.ts] +//// [noImplicitUseStrict_system.ts] export var x = 0; -//// [emitNonStrictModules_system.js] +//// [noImplicitUseStrict_system.js] System.register([], function(exports_1, context_1) { var __moduleName = context_1 && context_1.id; var x; diff --git a/tests/baselines/reference/noImplicitUseStrict_system.symbols b/tests/baselines/reference/noImplicitUseStrict_system.symbols new file mode 100644 index 00000000000..62b89a6593d --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_system.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/noImplicitUseStrict_system.ts === + +export var x = 0; +>x : Symbol(x, Decl(noImplicitUseStrict_system.ts, 1, 10)) + diff --git a/tests/baselines/reference/noImplicitUseStrict_system.types b/tests/baselines/reference/noImplicitUseStrict_system.types new file mode 100644 index 00000000000..1da563f938b --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_system.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/noImplicitUseStrict_system.ts === + +export var x = 0; +>x : number +>0 : number + diff --git a/tests/baselines/reference/emitNonStrictModules_umd.js b/tests/baselines/reference/noImplicitUseStrict_umd.js similarity index 81% rename from tests/baselines/reference/emitNonStrictModules_umd.js rename to tests/baselines/reference/noImplicitUseStrict_umd.js index c1ee0c048c5..ca252daeb9d 100644 --- a/tests/baselines/reference/emitNonStrictModules_umd.js +++ b/tests/baselines/reference/noImplicitUseStrict_umd.js @@ -1,8 +1,8 @@ -//// [emitNonStrictModules_umd.ts] +//// [noImplicitUseStrict_umd.ts] export var x = 0; -//// [emitNonStrictModules_umd.js] +//// [noImplicitUseStrict_umd.js] (function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; diff --git a/tests/baselines/reference/noImplicitUseStrict_umd.symbols b/tests/baselines/reference/noImplicitUseStrict_umd.symbols new file mode 100644 index 00000000000..a72a251ad09 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_umd.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/noImplicitUseStrict_umd.ts === + +export var x = 0; +>x : Symbol(x, Decl(noImplicitUseStrict_umd.ts, 1, 10)) + diff --git a/tests/baselines/reference/noImplicitUseStrict_umd.types b/tests/baselines/reference/noImplicitUseStrict_umd.types new file mode 100644 index 00000000000..6a3fd6ece77 --- /dev/null +++ b/tests/baselines/reference/noImplicitUseStrict_umd.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/noImplicitUseStrict_umd.ts === + +export var x = 0; +>x : number +>0 : number + diff --git a/tests/cases/compiler/emitNonStrictModules_amd.ts b/tests/cases/compiler/emitNonStrictModules_amd.ts deleted file mode 100644 index 217e23d91a3..00000000000 --- a/tests/cases/compiler/emitNonStrictModules_amd.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @module: amd -// @emitNonStrictModules: true - -export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/emitNonStrictModules_commonjs.ts b/tests/cases/compiler/emitNonStrictModules_commonjs.ts deleted file mode 100644 index 3d29c30176f..00000000000 --- a/tests/cases/compiler/emitNonStrictModules_commonjs.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @module: commonjs -// @emitNonStrictModules: true - -export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/emitNonStrictModules_es6.ts b/tests/cases/compiler/emitNonStrictModules_es6.ts deleted file mode 100644 index 426c5aff533..00000000000 --- a/tests/cases/compiler/emitNonStrictModules_es6.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @module: es6 -// @target: es6 -// @emitNonStrictModules: true - -export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/emitNonStrictModules_system.ts b/tests/cases/compiler/emitNonStrictModules_system.ts deleted file mode 100644 index 23801462b71..00000000000 --- a/tests/cases/compiler/emitNonStrictModules_system.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @module: system -// @emitNonStrictModules: true - -export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/emitNonStrictModules_umd.ts b/tests/cases/compiler/emitNonStrictModules_umd.ts deleted file mode 100644 index 1166f512cf2..00000000000 --- a/tests/cases/compiler/emitNonStrictModules_umd.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @module: umd -// @emitNonStrictModules: true - -export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/noImplicitUseStrict_amd.ts b/tests/cases/compiler/noImplicitUseStrict_amd.ts new file mode 100644 index 00000000000..3a2a4760221 --- /dev/null +++ b/tests/cases/compiler/noImplicitUseStrict_amd.ts @@ -0,0 +1,4 @@ +// @module: amd +// @noImplicitUseStrict: true + +export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/noImplicitUseStrict_commonjs.ts b/tests/cases/compiler/noImplicitUseStrict_commonjs.ts new file mode 100644 index 00000000000..f8377dba07a --- /dev/null +++ b/tests/cases/compiler/noImplicitUseStrict_commonjs.ts @@ -0,0 +1,4 @@ +// @module: commonjs +// @noImplicitUseStrict: true + +export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/noImplicitUseStrict_es6.ts b/tests/cases/compiler/noImplicitUseStrict_es6.ts new file mode 100644 index 00000000000..f56b0fd9021 --- /dev/null +++ b/tests/cases/compiler/noImplicitUseStrict_es6.ts @@ -0,0 +1,5 @@ +// @module: es6 +// @target: es6 +// @noImplicitUseStrict: true + +export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/noImplicitUseStrict_system.ts b/tests/cases/compiler/noImplicitUseStrict_system.ts new file mode 100644 index 00000000000..37ff5de469d --- /dev/null +++ b/tests/cases/compiler/noImplicitUseStrict_system.ts @@ -0,0 +1,4 @@ +// @module: system +// @noImplicitUseStrict: true + +export var x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/noImplicitUseStrict_umd.ts b/tests/cases/compiler/noImplicitUseStrict_umd.ts new file mode 100644 index 00000000000..f26f2ee2aff --- /dev/null +++ b/tests/cases/compiler/noImplicitUseStrict_umd.ts @@ -0,0 +1,4 @@ +// @module: umd +// @noImplicitUseStrict: true + +export var x = 0; \ No newline at end of file