From 1b0d020082e0c4848d7a4846e30819c8f019968b Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Fri, 28 Apr 2017 16:01:44 -0700 Subject: [PATCH] Add tests and update baselines --- .../importCallExpressionCheckReturntype1.js | 7 +-- .../importCallExpressionDeclarationEmit1.js | 11 ++-- .../reference/importCallExpressionES5AMD.js | 35 ++++++++++++ .../importCallExpressionES5AMD.symbols | 28 ++++++++++ .../importCallExpressionES5AMD.types | 39 ++++++++++++++ .../reference/importCallExpressionES5CJS.js | 31 +++++++++++ .../importCallExpressionES5CJS.symbols | 28 ++++++++++ .../importCallExpressionES5CJS.types | 39 ++++++++++++++ .../importCallExpressionES5System.js | 46 ++++++++++++++++ .../importCallExpressionES5System.symbols | 28 ++++++++++ .../importCallExpressionES5System.types | 39 ++++++++++++++ .../reference/importCallExpressionES5UMD.js | 53 +++++++++++++++++++ .../importCallExpressionES5UMD.symbols | 28 ++++++++++ .../importCallExpressionES5UMD.types | 39 ++++++++++++++ .../importCallExpressionGrammarError.js | 11 ++-- .../reference/importCallExpressionInAMD1.js | 6 +-- .../reference/importCallExpressionInAMD2.js | 2 +- .../reference/importCallExpressionInAMD3.js | 2 +- .../reference/importCallExpressionInAMD4.js | 4 +- .../reference/importCallExpressionInCJS1.js | 7 +-- .../reference/importCallExpressionInCJS2.js | 5 +- .../reference/importCallExpressionInCJS3.js | 3 +- .../reference/importCallExpressionInCJS4.js | 3 +- .../reference/importCallExpressionInCJS5.js | 5 +- .../importCallExpressionInScriptContext1.js | 3 +- .../importCallExpressionInScriptContext2.js | 3 +- .../reference/importCallExpressionInUMD1.js | 8 +-- .../reference/importCallExpressionInUMD2.js | 4 +- .../reference/importCallExpressionInUMD3.js | 4 +- .../reference/importCallExpressionInUMD4.js | 6 ++- .../importCallExpressionReturnPromiseOfAny.js | 17 +++--- ...llExpressionSpecifierNotStringTypeError.js | 11 ++-- .../importCallExpressionES5AMD.ts | 1 + .../importCallExpressionES5CJS.ts | 3 +- .../importCallExpressionES5System.ts | 3 +- .../importCallExpressionES5UMD.ts | 3 +- 36 files changed, 511 insertions(+), 54 deletions(-) create mode 100644 tests/baselines/reference/importCallExpressionES5AMD.js create mode 100644 tests/baselines/reference/importCallExpressionES5AMD.symbols create mode 100644 tests/baselines/reference/importCallExpressionES5AMD.types create mode 100644 tests/baselines/reference/importCallExpressionES5CJS.js create mode 100644 tests/baselines/reference/importCallExpressionES5CJS.symbols create mode 100644 tests/baselines/reference/importCallExpressionES5CJS.types create mode 100644 tests/baselines/reference/importCallExpressionES5System.js create mode 100644 tests/baselines/reference/importCallExpressionES5System.symbols create mode 100644 tests/baselines/reference/importCallExpressionES5System.types create mode 100644 tests/baselines/reference/importCallExpressionES5UMD.js create mode 100644 tests/baselines/reference/importCallExpressionES5UMD.symbols create mode 100644 tests/baselines/reference/importCallExpressionES5UMD.types diff --git a/tests/baselines/reference/importCallExpressionCheckReturntype1.js b/tests/baselines/reference/importCallExpressionCheckReturntype1.js index cddc20d925a..a4b564d89dc 100644 --- a/tests/baselines/reference/importCallExpressionCheckReturntype1.js +++ b/tests/baselines/reference/importCallExpressionCheckReturntype1.js @@ -29,7 +29,8 @@ class C { exports.C = C; //// [1.js] "use strict"; +var __resolved = new Promise(function (resolve) { resolve(); }); Object.defineProperty(exports, "__esModule", { value: true }); -let p1 = Promise.resolve().then(() => require("./defaultPath")); -let p2 = Promise.resolve().then(() => require("./defaultPath")); -let p3 = Promise.resolve().then(() => require("./defaultPath")); +let p1 = __resolved.then(function () { return require("./defaultPath"); }); +let p2 = __resolved.then(function () { return require("./defaultPath"); }); +let p3 = __resolved.then(function () { return require("./defaultPath"); }); diff --git a/tests/baselines/reference/importCallExpressionDeclarationEmit1.js b/tests/baselines/reference/importCallExpressionDeclarationEmit1.js index 721d85abe71..4319935bff5 100644 --- a/tests/baselines/reference/importCallExpressionDeclarationEmit1.js +++ b/tests/baselines/reference/importCallExpressionDeclarationEmit1.js @@ -15,12 +15,13 @@ function returnDynamicLoad(path: string) { } //// [importCallExpressionDeclarationEmit1.js] -Promise.resolve().then(() => require(getSpecifier())); -var p0 = Promise.resolve().then(() => require(`${directory}\${moduleFile}`)); -var p1 = Promise.resolve().then(() => require(getSpecifier())); -const p2 = Promise.resolve().then(() => require(whatToLoad ? getSpecifier() : "defaulPath")); +var __resolved = new Promise(function (resolve) { resolve(); }); +__resolved.then(function () { return require(getSpecifier()); }); +var p0 = __resolved.then(function () { return require(`${directory}\${moduleFile}`); }); +var p1 = __resolved.then(function () { return require(getSpecifier()); }); +const p2 = __resolved.then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); }); function returnDynamicLoad(path) { - return Promise.resolve().then(() => require(path)); + return __resolved.then(function () { return require(path); }); } diff --git a/tests/baselines/reference/importCallExpressionES5AMD.js b/tests/baselines/reference/importCallExpressionES5AMD.js new file mode 100644 index 00000000000..0a1aa0deb22 --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5AMD.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5AMD.ts] //// + +//// [0.ts] +export function foo() { return "foo"; } + +//// [1.ts] +import("./0"); +var p1 = import("./0"); +p1.then(zero => { + return zero.foo(); +}); + +function foo() { + const p2 = import("./0"); +} + +//// [0.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + function foo() { return "foo"; } + exports.foo = foo; +}); +//// [1.js] +define(["require", "exports"], function (require, exports) { + "use strict"; + new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + var p1 = new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + p1.then(function (zero) { + return zero.foo(); + }); + function foo() { + var p2 = new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + } +}); diff --git a/tests/baselines/reference/importCallExpressionES5AMD.symbols b/tests/baselines/reference/importCallExpressionES5AMD.symbols new file mode 100644 index 00000000000..15356c694ed --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5AMD.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +var p1 = import("./0"); +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) + +p1.then(zero => { +>p1.then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) + + return zero.foo(); +>zero.foo : Symbol(foo, Decl(0.ts, 0, 0)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +}); + +function foo() { +>foo : Symbol(foo, Decl(1.ts, 4, 3)) + + const p2 = import("./0"); +>p2 : Symbol(p2, Decl(1.ts, 7, 9)) +} diff --git a/tests/baselines/reference/importCallExpressionES5AMD.types b/tests/baselines/reference/importCallExpressionES5AMD.types new file mode 100644 index 00000000000..2733f3ff14a --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5AMD.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : () => string +>"foo" : "foo" + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +>import("./0") : Promise +>"./0" : "./0" + +var p1 = import("./0"); +>p1 : Promise +>import("./0") : Promise +>"./0" : "./0" + +p1.then(zero => { +>p1.then(zero => { return zero.foo();}) : Promise +>p1.then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>p1 : Promise +>then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>zero => { return zero.foo();} : (zero: typeof "tests/cases/conformance/es2018/dynamicImport/0") => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" + + return zero.foo(); +>zero.foo() : string +>zero.foo : () => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" +>foo : () => string + +}); + +function foo() { +>foo : () => void + + const p2 = import("./0"); +>p2 : Promise +>import("./0") : Promise +>"./0" : "./0" +} diff --git a/tests/baselines/reference/importCallExpressionES5CJS.js b/tests/baselines/reference/importCallExpressionES5CJS.js new file mode 100644 index 00000000000..77587259a82 --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5CJS.js @@ -0,0 +1,31 @@ +//// [tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5CJS.ts] //// + +//// [0.ts] +export function foo() { return "foo"; } + +//// [1.ts] +import("./0"); +var p1 = import("./0"); +p1.then(zero => { + return zero.foo(); +}); + +function foo() { + const p2 = import("./0"); +} + +//// [0.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function foo() { return "foo"; } +exports.foo = foo; +//// [1.js] +var __resolved = new Promise(function (resolve) { resolve(); }); +__resolved.then(function () { return require("./0"); }); +var p1 = __resolved.then(function () { return require("./0"); }); +p1.then(function (zero) { + return zero.foo(); +}); +function foo() { + var p2 = __resolved.then(function () { return require("./0"); }); +} diff --git a/tests/baselines/reference/importCallExpressionES5CJS.symbols b/tests/baselines/reference/importCallExpressionES5CJS.symbols new file mode 100644 index 00000000000..15356c694ed --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5CJS.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +var p1 = import("./0"); +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) + +p1.then(zero => { +>p1.then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) + + return zero.foo(); +>zero.foo : Symbol(foo, Decl(0.ts, 0, 0)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +}); + +function foo() { +>foo : Symbol(foo, Decl(1.ts, 4, 3)) + + const p2 = import("./0"); +>p2 : Symbol(p2, Decl(1.ts, 7, 9)) +} diff --git a/tests/baselines/reference/importCallExpressionES5CJS.types b/tests/baselines/reference/importCallExpressionES5CJS.types new file mode 100644 index 00000000000..2733f3ff14a --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5CJS.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : () => string +>"foo" : "foo" + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +>import("./0") : Promise +>"./0" : "./0" + +var p1 = import("./0"); +>p1 : Promise +>import("./0") : Promise +>"./0" : "./0" + +p1.then(zero => { +>p1.then(zero => { return zero.foo();}) : Promise +>p1.then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>p1 : Promise +>then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>zero => { return zero.foo();} : (zero: typeof "tests/cases/conformance/es2018/dynamicImport/0") => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" + + return zero.foo(); +>zero.foo() : string +>zero.foo : () => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" +>foo : () => string + +}); + +function foo() { +>foo : () => void + + const p2 = import("./0"); +>p2 : Promise +>import("./0") : Promise +>"./0" : "./0" +} diff --git a/tests/baselines/reference/importCallExpressionES5System.js b/tests/baselines/reference/importCallExpressionES5System.js new file mode 100644 index 00000000000..e0b017370a0 --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5System.js @@ -0,0 +1,46 @@ +//// [tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5System.ts] //// + +//// [0.ts] +export function foo() { return "foo"; } + +//// [1.ts] +import("./0"); +var p1 = import("./0"); +p1.then(zero => { + return zero.foo(); +}); + +function foo() { + const p2 = import("./0"); +} + +//// [0.js] +System.register([], function (exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + function foo() { return "foo"; } + exports_1("foo", foo); + return { + setters: [], + execute: function () { + } + }; +}); +//// [1.js] +System.register([], function (exports_1, context_1) { + var __moduleName = context_1 && context_1.id; + function foo() { + var p2 = context_1.import("./0"); + } + var p1; + return { + setters: [], + execute: function () { + context_1.import("./0"); + p1 = context_1.import("./0"); + p1.then(function (zero) { + return zero.foo(); + }); + } + }; +}); diff --git a/tests/baselines/reference/importCallExpressionES5System.symbols b/tests/baselines/reference/importCallExpressionES5System.symbols new file mode 100644 index 00000000000..15356c694ed --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5System.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +var p1 = import("./0"); +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) + +p1.then(zero => { +>p1.then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) + + return zero.foo(); +>zero.foo : Symbol(foo, Decl(0.ts, 0, 0)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +}); + +function foo() { +>foo : Symbol(foo, Decl(1.ts, 4, 3)) + + const p2 = import("./0"); +>p2 : Symbol(p2, Decl(1.ts, 7, 9)) +} diff --git a/tests/baselines/reference/importCallExpressionES5System.types b/tests/baselines/reference/importCallExpressionES5System.types new file mode 100644 index 00000000000..2733f3ff14a --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5System.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : () => string +>"foo" : "foo" + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +>import("./0") : Promise +>"./0" : "./0" + +var p1 = import("./0"); +>p1 : Promise +>import("./0") : Promise +>"./0" : "./0" + +p1.then(zero => { +>p1.then(zero => { return zero.foo();}) : Promise +>p1.then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>p1 : Promise +>then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>zero => { return zero.foo();} : (zero: typeof "tests/cases/conformance/es2018/dynamicImport/0") => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" + + return zero.foo(); +>zero.foo() : string +>zero.foo : () => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" +>foo : () => string + +}); + +function foo() { +>foo : () => void + + const p2 = import("./0"); +>p2 : Promise +>import("./0") : Promise +>"./0" : "./0" +} diff --git a/tests/baselines/reference/importCallExpressionES5UMD.js b/tests/baselines/reference/importCallExpressionES5UMD.js new file mode 100644 index 00000000000..ee96a145854 --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5UMD.js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5UMD.ts] //// + +//// [0.ts] +export function foo() { return "foo"; } + +//// [1.ts] +import("./0"); +var p1 = import("./0"); +p1.then(zero => { + return zero.foo(); +}); + +function foo() { + const p2 = import("./0"); +} + +//// [0.js] +(function (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(["require", "exports"], factory); + } +})(function (require, exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + function foo() { return "foo"; } + exports.foo = foo; +}); +//// [1.js] +(function (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(["require", "exports"], factory); + } +})(function (require, exports) { + "use strict"; + var __syncRequire = typeof module === "object" && typeof module.exports === "object"; + var __resolved = new Promise(function (resolve) { resolve(); }); + __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + var p1 = __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + p1.then(function (zero) { + return zero.foo(); + }); + function foo() { + var p2 = __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + } +}); diff --git a/tests/baselines/reference/importCallExpressionES5UMD.symbols b/tests/baselines/reference/importCallExpressionES5UMD.symbols new file mode 100644 index 00000000000..15356c694ed --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5UMD.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +var p1 = import("./0"); +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) + +p1.then(zero => { +>p1.then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>p1 : Symbol(p1, Decl(1.ts, 1, 3)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) + + return zero.foo(); +>zero.foo : Symbol(foo, Decl(0.ts, 0, 0)) +>zero : Symbol(zero, Decl(1.ts, 2, 8)) +>foo : Symbol(foo, Decl(0.ts, 0, 0)) + +}); + +function foo() { +>foo : Symbol(foo, Decl(1.ts, 4, 3)) + + const p2 = import("./0"); +>p2 : Symbol(p2, Decl(1.ts, 7, 9)) +} diff --git a/tests/baselines/reference/importCallExpressionES5UMD.types b/tests/baselines/reference/importCallExpressionES5UMD.types new file mode 100644 index 00000000000..2733f3ff14a --- /dev/null +++ b/tests/baselines/reference/importCallExpressionES5UMD.types @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es2018/dynamicImport/0.ts === +export function foo() { return "foo"; } +>foo : () => string +>"foo" : "foo" + +=== tests/cases/conformance/es2018/dynamicImport/1.ts === +import("./0"); +>import("./0") : Promise +>"./0" : "./0" + +var p1 = import("./0"); +>p1 : Promise +>import("./0") : Promise +>"./0" : "./0" + +p1.then(zero => { +>p1.then(zero => { return zero.foo();}) : Promise +>p1.then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>p1 : Promise +>then : (onfulfilled?: (value: typeof "tests/cases/conformance/es2018/dynamicImport/0") => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>zero => { return zero.foo();} : (zero: typeof "tests/cases/conformance/es2018/dynamicImport/0") => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" + + return zero.foo(); +>zero.foo() : string +>zero.foo : () => string +>zero : typeof "tests/cases/conformance/es2018/dynamicImport/0" +>foo : () => string + +}); + +function foo() { +>foo : () => void + + const p2 = import("./0"); +>p2 : Promise +>import("./0") : Promise +>"./0" : "./0" +} diff --git a/tests/baselines/reference/importCallExpressionGrammarError.js b/tests/baselines/reference/importCallExpressionGrammarError.js index e2ffc55577d..f907493a9a8 100644 --- a/tests/baselines/reference/importCallExpressionGrammarError.js +++ b/tests/baselines/reference/importCallExpressionGrammarError.js @@ -11,9 +11,10 @@ const p3 = import(,); const p4 = import("pathToModule", "secondModule"); //// [importCallExpressionGrammarError.js] +var __resolved = new Promise(function (resolve) { resolve(); }); var a = ["./0"]; -Promise.resolve().then(() => require(...["PathModule"])); -var p1 = Promise.resolve().then(() => require(...a)); -const p2 = Promise.resolve().then(() => require()); -const p3 = Promise.resolve().then(() => require()); -const p4 = Promise.resolve().then(() => require("pathToModule", "secondModule")); +__resolved.then(function () { return require(...["PathModule"]); }); +var p1 = __resolved.then(function () { return require(...a); }); +const p2 = __resolved.then(function () { return require(); }); +const p3 = __resolved.then(function () { return require(); }); +const p4 = __resolved.then(function () { return require("pathToModule", "secondModule"); }); diff --git a/tests/baselines/reference/importCallExpressionInAMD1.js b/tests/baselines/reference/importCallExpressionInAMD1.js index ed02c4893c3..852668f67de 100644 --- a/tests/baselines/reference/importCallExpressionInAMD1.js +++ b/tests/baselines/reference/importCallExpressionInAMD1.js @@ -24,12 +24,12 @@ define(["require", "exports"], function (require, exports) { //// [1.js] define(["require", "exports"], function (require, exports) { "use strict"; - new Promise(resolve => require(["./0"], resolve)); - var p1 = new Promise(resolve => require(["./0"], resolve)); + new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + var p1 = new Promise(function (_a, _b) { require(["./0"], _a, _b); }); p1.then(zero => { return zero.foo(); }); function foo() { - const p2 = new Promise(resolve => require(["./0"], resolve)); + const p2 = new Promise(function (_a, _b) { require(["./0"], _a, _b); }); } }); diff --git a/tests/baselines/reference/importCallExpressionInAMD2.js b/tests/baselines/reference/importCallExpressionInAMD2.js index 8f451643b5a..eb2f2795d3d 100644 --- a/tests/baselines/reference/importCallExpressionInAMD2.js +++ b/tests/baselines/reference/importCallExpressionInAMD2.js @@ -35,5 +35,5 @@ define(["require", "exports"], function (require, exports) { b.print(); }); } - foo(new Promise(resolve => require(["./0"], resolve))); + foo(new Promise(function (_a, _b) { require(["./0"], _a, _b); })); }); diff --git a/tests/baselines/reference/importCallExpressionInAMD3.js b/tests/baselines/reference/importCallExpressionInAMD3.js index be752805346..295dbb9b87e 100644 --- a/tests/baselines/reference/importCallExpressionInAMD3.js +++ b/tests/baselines/reference/importCallExpressionInAMD3.js @@ -26,7 +26,7 @@ define(["require", "exports"], function (require, exports) { define(["require", "exports"], function (require, exports) { "use strict"; async function foo() { - class C extends (await new Promise(resolve => require(["./0"], resolve))).B { + class C extends (await new Promise(function (_a, _b) { require(["./0"], _a, _b); })).B { } var c = new C(); c.print(); diff --git a/tests/baselines/reference/importCallExpressionInAMD4.js b/tests/baselines/reference/importCallExpressionInAMD4.js index 796e1a7996e..ce7a0ba9e23 100644 --- a/tests/baselines/reference/importCallExpressionInAMD4.js +++ b/tests/baselines/reference/importCallExpressionInAMD4.js @@ -48,14 +48,14 @@ define(["require", "exports"], function (require, exports) { "use strict"; class C { constructor() { - this.myModule = new Promise(resolve => require(["./0"], resolve)); + this.myModule = new Promise(function (_a, _b) { require(["./0"], _a, _b); }); } method() { this.myModule.then(Zero => { console.log(Zero.foo()); }, async (err) => { console.log(err); - let one = await new Promise(resolve => require(["./1"], resolve)); + let one = await new Promise(function (_a, _b) { require(["./1"], _a, _b); }); console.log(one.backup()); }); } diff --git a/tests/baselines/reference/importCallExpressionInCJS1.js b/tests/baselines/reference/importCallExpressionInCJS1.js index 85d99dfa4c3..a939c78bf49 100644 --- a/tests/baselines/reference/importCallExpressionInCJS1.js +++ b/tests/baselines/reference/importCallExpressionInCJS1.js @@ -20,11 +20,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); function foo() { return "foo"; } exports.foo = foo; //// [1.js] -Promise.resolve().then(() => require("./0")); -var p1 = Promise.resolve().then(() => require("./0")); +var __resolved = new Promise(function (resolve) { resolve(); }); +__resolved.then(function () { return require("./0"); }); +var p1 = __resolved.then(function () { return require("./0"); }); p1.then(zero => { return zero.foo(); }); function foo() { - const p2 = Promise.resolve().then(() => require("./0")); + const p2 = __resolved.then(function () { return require("./0"); }); } diff --git a/tests/baselines/reference/importCallExpressionInCJS2.js b/tests/baselines/reference/importCallExpressionInCJS2.js index a5b96c45ee0..d21c81b1a15 100644 --- a/tests/baselines/reference/importCallExpressionInCJS2.js +++ b/tests/baselines/reference/importCallExpressionInCJS2.js @@ -29,12 +29,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); function backup() { return "backup"; } exports.backup = backup; //// [2.js] +var __resolved = new Promise(function (resolve) { resolve(); }); async function compute(promise) { let j = await promise; if (!j) { - j = await Promise.resolve().then(() => require("./1")); + j = await __resolved.then(function () { return require("./1"); }); return j.backup(); } return j.foo(); } -compute(Promise.resolve().then(() => require("./0"))); +compute(__resolved.then(function () { return require("./0"); })); diff --git a/tests/baselines/reference/importCallExpressionInCJS3.js b/tests/baselines/reference/importCallExpressionInCJS3.js index 499c8f9b496..bce029c4675 100644 --- a/tests/baselines/reference/importCallExpressionInCJS3.js +++ b/tests/baselines/reference/importCallExpressionInCJS3.js @@ -24,6 +24,7 @@ class B { } exports.B = B; //// [2.js] +var __resolved = new Promise(function (resolve) { resolve(); }); // We use Promise for now as there is no way to specify shape of module object function foo(x) { x.then(value => { @@ -31,4 +32,4 @@ function foo(x) { b.print(); }); } -foo(Promise.resolve().then(() => require("./0"))); +foo(__resolved.then(function () { return require("./0"); })); diff --git a/tests/baselines/reference/importCallExpressionInCJS4.js b/tests/baselines/reference/importCallExpressionInCJS4.js index 038e9649bfd..aeb537e05bf 100644 --- a/tests/baselines/reference/importCallExpressionInCJS4.js +++ b/tests/baselines/reference/importCallExpressionInCJS4.js @@ -21,8 +21,9 @@ class B { } exports.B = B; //// [2.js] +var __resolved = new Promise(function (resolve) { resolve(); }); async function foo() { - class C extends (await Promise.resolve().then(() => require("./0"))).B { + class C extends (await __resolved.then(function () { return require("./0"); })).B { } var c = new C(); c.print(); diff --git a/tests/baselines/reference/importCallExpressionInCJS5.js b/tests/baselines/reference/importCallExpressionInCJS5.js index d1158fe48b8..aaa0c0f3d11 100644 --- a/tests/baselines/reference/importCallExpressionInCJS5.js +++ b/tests/baselines/reference/importCallExpressionInCJS5.js @@ -40,16 +40,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); function backup() { return "backup"; } exports.backup = backup; //// [2.js] +var __resolved = new Promise(function (resolve) { resolve(); }); class C { constructor() { - this.myModule = Promise.resolve().then(() => require("./0")); + this.myModule = __resolved.then(function () { return require("./0"); }); } method() { this.myModule.then(Zero => { console.log(Zero.foo()); }, async (err) => { console.log(err); - let one = await Promise.resolve().then(() => require("./1")); + let one = await __resolved.then(function () { return require("./1"); }); console.log(one.backup()); }); } diff --git a/tests/baselines/reference/importCallExpressionInScriptContext1.js b/tests/baselines/reference/importCallExpressionInScriptContext1.js index 20a72ff565d..4476fac6c7b 100644 --- a/tests/baselines/reference/importCallExpressionInScriptContext1.js +++ b/tests/baselines/reference/importCallExpressionInScriptContext1.js @@ -13,5 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); function foo() { return "foo"; } exports.foo = foo; //// [1.js] -var p1 = Promise.resolve().then(() => require("./0")); +var __resolved = new Promise(function (resolve) { resolve(); }); +var p1 = __resolved.then(function () { return require("./0"); }); function arguments() { } // this is allow as the file doesn't have implicit "use strict" diff --git a/tests/baselines/reference/importCallExpressionInScriptContext2.js b/tests/baselines/reference/importCallExpressionInScriptContext2.js index 3f2510493f0..594b806ee73 100644 --- a/tests/baselines/reference/importCallExpressionInScriptContext2.js +++ b/tests/baselines/reference/importCallExpressionInScriptContext2.js @@ -15,5 +15,6 @@ function foo() { return "foo"; } exports.foo = foo; //// [1.js] "use strict"; -var p1 = Promise.resolve().then(() => require("./0")); +var __resolved = new Promise(function (resolve) { resolve(); }); +var p1 = __resolved.then(function () { return require("./0"); }); function arguments() { } diff --git a/tests/baselines/reference/importCallExpressionInUMD1.js b/tests/baselines/reference/importCallExpressionInUMD1.js index 16668df030f..317c6452942 100644 --- a/tests/baselines/reference/importCallExpressionInUMD1.js +++ b/tests/baselines/reference/importCallExpressionInUMD1.js @@ -40,12 +40,14 @@ function foo() { } })(function (require, exports) { "use strict"; - require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve)); - var p1 = require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve)); + var __syncRequire = typeof module === "object" && typeof module.exports === "object"; + var __resolved = new Promise(function (resolve) { resolve(); }); + __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); + var p1 = __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); p1.then(zero => { return zero.foo(); }); function foo() { - const p2 = require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve)); + const p2 = __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); } }); diff --git a/tests/baselines/reference/importCallExpressionInUMD2.js b/tests/baselines/reference/importCallExpressionInUMD2.js index ebaeca6311a..c55b522160f 100644 --- a/tests/baselines/reference/importCallExpressionInUMD2.js +++ b/tests/baselines/reference/importCallExpressionInUMD2.js @@ -44,6 +44,8 @@ foo(import("./0")); } })(function (require, exports) { "use strict"; + var __syncRequire = typeof module === "object" && typeof module.exports === "object"; + var __resolved = new Promise(function (resolve) { resolve(); }); // We use Promise for now as there is no way to specify shape of module object function foo(x) { x.then(value => { @@ -51,5 +53,5 @@ foo(import("./0")); b.print(); }); } - foo(require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve))); + foo(__syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); })); }); diff --git a/tests/baselines/reference/importCallExpressionInUMD3.js b/tests/baselines/reference/importCallExpressionInUMD3.js index 5aef0967131..8b8ddef84d1 100644 --- a/tests/baselines/reference/importCallExpressionInUMD3.js +++ b/tests/baselines/reference/importCallExpressionInUMD3.js @@ -41,8 +41,10 @@ foo(); } })(function (require, exports) { "use strict"; + var __syncRequire = typeof module === "object" && typeof module.exports === "object"; + var __resolved = new Promise(function (resolve) { resolve(); }); async function foo() { - class C extends (await (require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve)))).B { + class C extends (await (__syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }))).B { } var c = new C(); c.print(); diff --git a/tests/baselines/reference/importCallExpressionInUMD4.js b/tests/baselines/reference/importCallExpressionInUMD4.js index ac36081a536..36702c55a7f 100644 --- a/tests/baselines/reference/importCallExpressionInUMD4.js +++ b/tests/baselines/reference/importCallExpressionInUMD4.js @@ -70,16 +70,18 @@ class C { } })(function (require, exports) { "use strict"; + var __syncRequire = typeof module === "object" && typeof module.exports === "object"; + var __resolved = new Promise(function (resolve) { resolve(); }); class C { constructor() { - this.myModule = require.length === 1 ? Promise.resolve().then(() => require("./0")) : new Promise(resolve => require(["./0"], resolve)); + this.myModule = __syncRequire ? __resolved.then(function () { return require("./0"); }) : new Promise(function (_a, _b) { require(["./0"], _a, _b); }); } method() { this.myModule.then(Zero => { console.log(Zero.foo()); }, async (err) => { console.log(err); - let one = await (require.length === 1 ? Promise.resolve().then(() => require("./1")) : new Promise(resolve => require(["./1"], resolve))); + let one = await (__syncRequire ? __resolved.then(function () { return require("./1"); }) : new Promise(function (_a, _b) { require(["./1"], _a, _b); })); console.log(one.backup()); }); } diff --git a/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.js b/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.js index 0ba536b4c39..5116da7a3fc 100644 --- a/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.js +++ b/tests/baselines/reference/importCallExpressionReturnPromiseOfAny.js @@ -41,21 +41,22 @@ class C { exports.C = C; //// [1.js] "use strict"; +var __resolved = new Promise(function (resolve) { resolve(); }); Object.defineProperty(exports, "__esModule", { value: true }); -Promise.resolve().then(() => require(`${directory}\${moduleFile}`)); -Promise.resolve().then(() => require(getSpecifier())); -var p1 = Promise.resolve().then(() => require(ValidSomeCondition() ? "./0" : "externalModule")); -var p1 = Promise.resolve().then(() => require(getSpecifier())); -var p11 = Promise.resolve().then(() => require(getSpecifier())); -const p2 = Promise.resolve().then(() => require(whatToLoad ? getSpecifier() : "defaulPath")); +__resolved.then(function () { return require(`${directory}\${moduleFile}`); }); +__resolved.then(function () { return require(getSpecifier()); }); +var p1 = __resolved.then(function () { return require(ValidSomeCondition() ? "./0" : "externalModule"); }); +var p1 = __resolved.then(function () { return require(getSpecifier()); }); +var p11 = __resolved.then(function () { return require(getSpecifier()); }); +const p2 = __resolved.then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); }); p1.then(zero => { return zero.foo(); // ok, zero is any }); let j; -var p3 = Promise.resolve().then(() => require(j = getSpecifier())); +var p3 = __resolved.then(function () { return require(j = getSpecifier()); }); function* loadModule(directories) { for (const directory of directories) { const path = `${directory}\moduleFile`; - Promise.resolve().then(() => require(yield path)); + __resolved.then(function () { return require(yield path); }); } } diff --git a/tests/baselines/reference/importCallExpressionSpecifierNotStringTypeError.js b/tests/baselines/reference/importCallExpressionSpecifierNotStringTypeError.js index 5e2ace1c401..ce0b60dd618 100644 --- a/tests/baselines/reference/importCallExpressionSpecifierNotStringTypeError.js +++ b/tests/baselines/reference/importCallExpressionSpecifierNotStringTypeError.js @@ -14,12 +14,13 @@ var p3 = import(["path1", "path2"]); var p4 = import(()=>"PathToModule"); //// [importCallExpressionSpecifierNotStringTypeError.js] +var __resolved = new Promise(function (resolve) { resolve(); }); // Error specifier is not assignable to string -Promise.resolve().then(() => require(getSpecifier())); -var p1 = Promise.resolve().then(() => require(getSpecifier())); -const p2 = Promise.resolve().then(() => require(whatToLoad ? getSpecifier() : "defaulPath")); +__resolved.then(function () { return require(getSpecifier()); }); +var p1 = __resolved.then(function () { return require(getSpecifier()); }); +const p2 = __resolved.then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); }); p1.then(zero => { return zero.foo(); // ok, zero is any }); -var p3 = Promise.resolve().then(() => require(["path1", "path2"])); -var p4 = Promise.resolve().then(() => require(() => "PathToModule")); +var p3 = __resolved.then(function () { return require(["path1", "path2"]); }); +var p4 = __resolved.then(function () { return require(() => "PathToModule"); }); diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5AMD.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5AMD.ts index f44ce0e6e13..33c31283ea0 100644 --- a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5AMD.ts +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5AMD.ts @@ -1,5 +1,6 @@ // @module: amd // @target: es5 +// @lib: es6 // @filename: 0.ts export function foo() { return "foo"; } diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5CJS.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5CJS.ts index e1457017552..900ddbdba0c 100644 --- a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5CJS.ts +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5CJS.ts @@ -1,5 +1,6 @@ // @module: commonjs -// @target: esnext +// @target: es5 +// @lib: es6 // @filename: 0.ts export function foo() { return "foo"; } diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5System.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5System.ts index a69e844c7a7..c00ab6899c6 100644 --- a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5System.ts +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5System.ts @@ -1,5 +1,6 @@ // @module: system -// @target: esnext +// @target: es5 +// @lib: es6 // @filename: 0.ts export function foo() { return "foo"; } diff --git a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5UMD.ts b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5UMD.ts index 05c4d699104..699b0ffc342 100644 --- a/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5UMD.ts +++ b/tests/cases/conformance/es2018/dynamicImport/importCallExpressionES5UMD.ts @@ -1,5 +1,6 @@ // @module: umd -// @target: esnext +// @target: es5 +// @lib: es6 // @filename: 0.ts export function foo() { return "foo"; }