diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 48718146ac6ad..0d2ffc4154d18 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -5493,7 +5493,7 @@ if (typeof __param !== "function") __param = function (paramIndex, decorator) { paramEmitted = true; } - if (isExternalModule(node)) { + if (isExternalModule(node) || compilerOptions.separateCompilation) { if (languageVersion >= ScriptTarget.ES6) { emitES6Module(node, startIndex); } diff --git a/tests/baselines/reference/separateCompilationPlainFile-AMD.errors.txt b/tests/baselines/reference/separateCompilationPlainFile-AMD.errors.txt new file mode 100644 index 0000000000000..3605dc7f44e99 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-AMD.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/separateCompilationPlainFile-AMD.ts(2,1): error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + + +==== tests/cases/compiler/separateCompilationPlainFile-AMD.ts (1 errors) ==== + + declare function run(a: number): void; + ~~~~~~~ +!!! error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + run(1); + \ No newline at end of file diff --git a/tests/baselines/reference/separateCompilationPlainFile-AMD.js b/tests/baselines/reference/separateCompilationPlainFile-AMD.js new file mode 100644 index 0000000000000..e3e9fc1eaeb89 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-AMD.js @@ -0,0 +1,10 @@ +//// [separateCompilationPlainFile-AMD.ts] + +declare function run(a: number): void; +run(1); + + +//// [separateCompilationPlainFile-AMD.js] +define(["require", "exports"], function (require, exports) { + run(1); +}); diff --git a/tests/baselines/reference/separateCompilationPlainFile-CommonJS.errors.txt b/tests/baselines/reference/separateCompilationPlainFile-CommonJS.errors.txt new file mode 100644 index 0000000000000..d56e82fd6e181 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-CommonJS.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/separateCompilationPlainFile-CommonJS.ts(2,1): error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + + +==== tests/cases/compiler/separateCompilationPlainFile-CommonJS.ts (1 errors) ==== + + declare function run(a: number): void; + ~~~~~~~ +!!! error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + run(1); + \ No newline at end of file diff --git a/tests/baselines/reference/separateCompilationPlainFile-CommonJS.js b/tests/baselines/reference/separateCompilationPlainFile-CommonJS.js new file mode 100644 index 0000000000000..cd82cdf20a6b2 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-CommonJS.js @@ -0,0 +1,8 @@ +//// [separateCompilationPlainFile-CommonJS.ts] + +declare function run(a: number): void; +run(1); + + +//// [separateCompilationPlainFile-CommonJS.js] +run(1); diff --git a/tests/baselines/reference/separateCompilationPlainFile-ES6.errors.txt b/tests/baselines/reference/separateCompilationPlainFile-ES6.errors.txt new file mode 100644 index 0000000000000..6054ab552c8b9 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-ES6.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/separateCompilationPlainFile-ES6.ts(2,1): error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + + +==== tests/cases/compiler/separateCompilationPlainFile-ES6.ts (1 errors) ==== + + declare function run(a: number): void; + ~~~~~~~ +!!! error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + run(1); + \ No newline at end of file diff --git a/tests/baselines/reference/separateCompilationPlainFile-ES6.js b/tests/baselines/reference/separateCompilationPlainFile-ES6.js new file mode 100644 index 0000000000000..1cb6082f1340d --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-ES6.js @@ -0,0 +1,8 @@ +//// [separateCompilationPlainFile-ES6.ts] + +declare function run(a: number): void; +run(1); + + +//// [separateCompilationPlainFile-ES6.js] +run(1); diff --git a/tests/baselines/reference/separateCompilationPlainFile-System.errors.txt b/tests/baselines/reference/separateCompilationPlainFile-System.errors.txt new file mode 100644 index 0000000000000..716909cee4f36 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-System.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/separateCompilationPlainFile-System.ts(2,1): error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + + +==== tests/cases/compiler/separateCompilationPlainFile-System.ts (1 errors) ==== + + declare function run(a: number): void; + ~~~~~~~ +!!! error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + run(1); + \ No newline at end of file diff --git a/tests/baselines/reference/separateCompilationPlainFile-System.js b/tests/baselines/reference/separateCompilationPlainFile-System.js new file mode 100644 index 0000000000000..c256ed7862a91 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-System.js @@ -0,0 +1,15 @@ +//// [separateCompilationPlainFile-System.ts] + +declare function run(a: number): void; +run(1); + + +//// [separateCompilationPlainFile-System.js] +System.register([], function(exports_1) { + return { + setters:[], + execute: function() { + run(1); + } + } +}); diff --git a/tests/baselines/reference/separateCompilationPlainFile-UMD.errors.txt b/tests/baselines/reference/separateCompilationPlainFile-UMD.errors.txt new file mode 100644 index 0000000000000..c86daeabddfa7 --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-UMD.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/separateCompilationPlainFile-UMD.ts(2,1): error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + + +==== tests/cases/compiler/separateCompilationPlainFile-UMD.ts (1 errors) ==== + + declare function run(a: number): void; + ~~~~~~~ +!!! error TS1208: Cannot compile non-external modules when the '--separateCompilation' flag is provided. + run(1); + \ No newline at end of file diff --git a/tests/baselines/reference/separateCompilationPlainFile-UMD.js b/tests/baselines/reference/separateCompilationPlainFile-UMD.js new file mode 100644 index 0000000000000..6a145e7d239cb --- /dev/null +++ b/tests/baselines/reference/separateCompilationPlainFile-UMD.js @@ -0,0 +1,17 @@ +//// [separateCompilationPlainFile-UMD.ts] + +declare function run(a: number): void; +run(1); + + +//// [separateCompilationPlainFile-UMD.js] +(function (deps, factory) { + if (typeof module === 'object' && typeof module.exports === 'object') { + var v = factory(require, exports); if (v !== undefined) module.exports = v; + } + else if (typeof define === 'function' && define.amd) { + define(deps, factory); + } +})(["require", "exports"], function (require, exports) { + run(1); +}); diff --git a/tests/cases/compiler/separateCompilationPlainFile-AMD.ts b/tests/cases/compiler/separateCompilationPlainFile-AMD.ts new file mode 100644 index 0000000000000..a1010ce3e8c86 --- /dev/null +++ b/tests/cases/compiler/separateCompilationPlainFile-AMD.ts @@ -0,0 +1,6 @@ +// @target: es5 +// @module: amd +// @separateCompilation: true + +declare function run(a: number): void; +run(1); diff --git a/tests/cases/compiler/separateCompilationPlainFile-CommonJS.ts b/tests/cases/compiler/separateCompilationPlainFile-CommonJS.ts new file mode 100644 index 0000000000000..532d97f09eb1c --- /dev/null +++ b/tests/cases/compiler/separateCompilationPlainFile-CommonJS.ts @@ -0,0 +1,6 @@ +// @target: es5 +// @module: commonjs +// @separateCompilation: true + +declare function run(a: number): void; +run(1); diff --git a/tests/cases/compiler/separateCompilationPlainFile-ES6.ts b/tests/cases/compiler/separateCompilationPlainFile-ES6.ts new file mode 100644 index 0000000000000..20d4e8d79a285 --- /dev/null +++ b/tests/cases/compiler/separateCompilationPlainFile-ES6.ts @@ -0,0 +1,5 @@ +// @target: es6 +// @separateCompilation: true + +declare function run(a: number): void; +run(1); diff --git a/tests/cases/compiler/separateCompilationPlainFile-System.ts b/tests/cases/compiler/separateCompilationPlainFile-System.ts new file mode 100644 index 0000000000000..6906571825438 --- /dev/null +++ b/tests/cases/compiler/separateCompilationPlainFile-System.ts @@ -0,0 +1,6 @@ +// @target: es5 +// @module: system +// @separateCompilation: true + +declare function run(a: number): void; +run(1); diff --git a/tests/cases/compiler/separateCompilationPlainFile-UMD.ts b/tests/cases/compiler/separateCompilationPlainFile-UMD.ts new file mode 100644 index 0000000000000..4ab45686c909c --- /dev/null +++ b/tests/cases/compiler/separateCompilationPlainFile-UMD.ts @@ -0,0 +1,6 @@ +// @target: es5 +// @module: umd +// @separateCompilation: true + +declare function run(a: number): void; +run(1);