From e1ba8553b6180c0104156c0618289971a7936778 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Thu, 23 Mar 2017 11:29:45 -0700 Subject: [PATCH] Add declaration emit test and test to make sure we don't give dynamic import implicit "use strict" --- ...portCallExpressionAllowInScriptContext1.ts | 10 ++++++++++ ...portCallExpressionAllowInScriptContext2.ts | 11 +++++++++++ .../importCallExpressionDeclarationEmit1.ts | 19 +++++++++++++++++++ .../importCallExpressionDeclarationEmit2.ts | 10 ++++++++++ 4 files changed, 50 insertions(+) create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext1.ts create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext2.ts create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit1.ts create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit2.ts diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext1.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext1.ts new file mode 100644 index 00000000000..166513321a3 --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext1.ts @@ -0,0 +1,10 @@ +// @module: commonjs +// @target: es6 +// @noImplicitAny: false + +// @filename: 0.ts +export function foo() { return "foo"; } + +// @filename: 1.ts +var p1 = import("./0"); +function arguments() { } // this is allow as the file doesn't have implicit "use strict" \ No newline at end of file diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext2.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext2.ts new file mode 100644 index 00000000000..754f7e865bb --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionAllowInScriptContext2.ts @@ -0,0 +1,11 @@ +// @module: commonjs +// @target: es6 +// @noImplicitAny: false + +// @filename: 0.ts +export function foo() { return "foo"; } + +// @filename: 1.ts +"use strict" +var p1 = import("./0"); +function arguments() { } \ No newline at end of file diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit1.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit1.ts new file mode 100644 index 00000000000..fb299951148 --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit1.ts @@ -0,0 +1,19 @@ +// @module: commonjs +// @target: es6 +// @noImplicitAny: false +// @declaration: true + +declare function getSpecifier(): string; +declare var whatToLoad: boolean; +declare const directory: string; +declare const moduleFile: number; + +import(getSpecifier()); + +var p0 = import(`${directory}\${moduleFile}`); +var p1 = import(getSpecifier()); +const p2 = import(whatToLoad ? getSpecifier() : "defaulPath") + +function returnDynamicLoad(path: string) { + return import(path); +} \ No newline at end of file diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit2.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit2.ts new file mode 100644 index 00000000000..d1ee592a98a --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionDeclarationEmit2.ts @@ -0,0 +1,10 @@ +// @module: es2018 +// @target: esnext +// @declaration: true + +// @filename: 0.ts +export function foo() { return "foo"; } + +// @filename: 1.ts +import("./0"); +var p1 = import("./0"); \ No newline at end of file