From 03256e7c8627e1af66f9704ecfa3a89956e42f2a Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Fri, 2 Oct 2015 17:43:58 -0700 Subject: [PATCH] cusotm tests, forbid umd --- src/compiler/diagnosticMessages.json | 2 +- src/compiler/emitter.ts | 10 +++++----- src/compiler/program.ts | 4 ++-- tests/cases/compiler/outModuleConcatAmd.ts | 12 ++++++++++++ tests/cases/compiler/outModuleConcatCommonjs.ts | 14 ++++++++++++++ tests/cases/compiler/outModuleConcatES6.ts | 14 ++++++++++++++ tests/cases/compiler/outModuleConcatSystem.ts | 12 ++++++++++++ tests/cases/compiler/outModuleConcatUmd.ts | 14 ++++++++++++++ 8 files changed, 74 insertions(+), 8 deletions(-) create mode 100644 tests/cases/compiler/outModuleConcatAmd.ts create mode 100644 tests/cases/compiler/outModuleConcatCommonjs.ts create mode 100644 tests/cases/compiler/outModuleConcatES6.ts create mode 100644 tests/cases/compiler/outModuleConcatSystem.ts create mode 100644 tests/cases/compiler/outModuleConcatUmd.ts diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 0685eb44304..a222aa6a344 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -2302,7 +2302,7 @@ "category": "Message", "code": 6081 }, - "Only 'amd', 'umd', and 'system' modules are supported alongside --{0}.": { + "Only 'amd' and 'system' modules are supported alongside --{0}.": { "category": "Error", "code": 6082 }, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 7e4a1714d51..4ce0a39eb07 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -457,11 +457,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi }; let bundleEmitDelegates: Map<(node: SourceFile, startIndex: number, resolvePath?: boolean) => void> = { - [ModuleKind.ES6]() { }, + [ModuleKind.ES6]() {}, [ModuleKind.AMD]: emitAMDModule, [ModuleKind.System]: emitSystemModule, - [ModuleKind.UMD]: emitUMDModule, - [ModuleKind.CommonJS]() { }, + [ModuleKind.UMD]() {}, + [ModuleKind.CommonJS]() {}, }; if (compilerOptions.sourceMap || compilerOptions.inlineSourceMap) { @@ -6827,11 +6827,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi emitExportEquals(/*emitAsReturn*/ false); } - function emitUMDModule(node: SourceFile, startIndex: number, resolvePath?: boolean) { + function emitUMDModule(node: SourceFile, startIndex: number) { emitEmitHelpers(node); collectExternalModuleInfo(node); - let dependencyNames = getAMDDependencyNames(node, /*includeNonAmdDependencies*/ false, resolvePath); + let dependencyNames = getAMDDependencyNames(node, /*includeNonAmdDependencies*/ false); // Module is detected first to support Browserify users that load into a browser with an AMD loader writeLines(`(function (factory) { diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 163ddfa36c1..0cdcddbb0ed 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1064,8 +1064,8 @@ namespace ts { } // Cannot specify module gen that isn't amd, umd, or system with --out - if (outFile && options.module && options.module !== ModuleKind.AMD && options.module !== ModuleKind.UMD && options.module !== ModuleKind.System) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Only_amd_umd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile")); + if (outFile && options.module && options.module !== ModuleKind.AMD && options.module !== ModuleKind.System) { + programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile")); } if (options.noEmit) { diff --git a/tests/cases/compiler/outModuleConcatAmd.ts b/tests/cases/compiler/outModuleConcatAmd.ts new file mode 100644 index 00000000000..411a13e72a2 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatAmd.ts @@ -0,0 +1,12 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: amd +// @outFile: all.js + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatCommonjs.ts b/tests/cases/compiler/outModuleConcatCommonjs.ts new file mode 100644 index 00000000000..0cb57bd11e7 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatCommonjs.ts @@ -0,0 +1,14 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: commonjs +// @outFile: all.js + +// This should be an error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatES6.ts b/tests/cases/compiler/outModuleConcatES6.ts new file mode 100644 index 00000000000..e98514e9adc --- /dev/null +++ b/tests/cases/compiler/outModuleConcatES6.ts @@ -0,0 +1,14 @@ +// @target: ES6 +// @sourcemap: true +// @declaration: true +// @module: es6 +// @outFile: all.js + +// This should be an error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatSystem.ts b/tests/cases/compiler/outModuleConcatSystem.ts new file mode 100644 index 00000000000..c8d9b4e9737 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatSystem.ts @@ -0,0 +1,12 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: system +// @outFile: all.js + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatUmd.ts b/tests/cases/compiler/outModuleConcatUmd.ts new file mode 100644 index 00000000000..fa4a4a519c6 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatUmd.ts @@ -0,0 +1,14 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: umd +// @outFile: all.js + +// This should error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file