From a84645c63e8cc19335eb5dd812b13faf4122e36f Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 14 Mar 2017 14:41:14 -0700 Subject: [PATCH] Add more tests for emitting of es2018 module-kind --- .../importCallExpression3ES2018.ts | 17 ++++++++++++ .../importCallExpression4ES2018.ts | 14 ++++++++++ .../importCallExpression5ES2018.ts | 26 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpression3ES2018.ts create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpression4ES2018.ts create mode 100644 tests/cases/conformance/es2018/dynamicImport/importCallExpression5ES2018.ts diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpression3ES2018.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpression3ES2018.ts new file mode 100644 index 00000000000..3cb6fd7bc92 --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpression3ES2018.ts @@ -0,0 +1,17 @@ +// @module: es2018 +// @target: esnext +// @filename: 0.ts +export class B { + print() { return "I am B"} +} + +// @filename: 2.ts +// We use Promise for now as there is no way to specify shape of module object +function foo(x: Promise) { + x.then(value => { + let b = new value.B(); + b.print(); + }) +} + +foo(import("./0")); \ No newline at end of file diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpression4ES2018.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpression4ES2018.ts new file mode 100644 index 00000000000..6b2fc219d24 --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpression4ES2018.ts @@ -0,0 +1,14 @@ +// @module: es2018 +// @target: esnext +// @filename: 0.ts +export class B { + print() { return "I am B"} +} + +// @filename: 2.ts +async function foo() { + class C extends (await import("./0")).B {} + var c = new C(); + c.print(); +} +foo(); \ No newline at end of file diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpression5ES2018.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpression5ES2018.ts new file mode 100644 index 00000000000..03e72bb6d4d --- /dev/null +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpression5ES2018.ts @@ -0,0 +1,26 @@ +// @module: es2018 +// @target: esnext +// @filename: 0.ts +export class B { + print() { return "I am B"} +} + +export function foo() { return "foo" } + +// @filename: 1.ts +export function backup() { return "backup"; } + +// @filename: 2.ts +declare var console: any; +class C { + private myModule = import("./0"); + method() { + this.myModule.then(Zero => { + console.log(Zero.foo()); + }, async err => { + console.log(err); + let one = await import("./1"); + console.log(one.backup()); + }); + } +} \ No newline at end of file