mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge pull request #19057 from Microsoft/fix17564
Fix 'this' capturing for dynamic import
This commit is contained in:
@@ -2699,6 +2699,12 @@ namespace ts {
|
||||
|
||||
if (expression.kind === SyntaxKind.ImportKeyword) {
|
||||
transformFlags |= TransformFlags.ContainsDynamicImport;
|
||||
|
||||
// A dynamic 'import()' call that contains a lexical 'this' will
|
||||
// require a captured 'this' when emitting down-level.
|
||||
if (subtreeFlags & TransformFlags.ContainsLexicalThis) {
|
||||
transformFlags |= TransformFlags.ContainsCapturedLexicalThis;
|
||||
}
|
||||
}
|
||||
|
||||
node.transformFlags = transformFlags | TransformFlags.HasComputedFlags;
|
||||
|
||||
@@ -561,46 +561,89 @@ namespace ts {
|
||||
// });
|
||||
const resolve = createUniqueName("resolve");
|
||||
const reject = createUniqueName("reject");
|
||||
return createNew(
|
||||
createIdentifier("Promise"),
|
||||
/*typeArguments*/ undefined,
|
||||
[createFunctionExpression(
|
||||
const parameters = [
|
||||
createParameter(/*decorator*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ resolve),
|
||||
createParameter(/*decorator*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ reject)
|
||||
];
|
||||
const body = createBlock([
|
||||
createStatement(
|
||||
createCall(
|
||||
createIdentifier("require"),
|
||||
/*typeArguments*/ undefined,
|
||||
[createArrayLiteral([firstOrUndefined(node.arguments) || createOmittedExpression()]), resolve, reject]
|
||||
)
|
||||
)
|
||||
]);
|
||||
|
||||
let func: FunctionExpression | ArrowFunction;
|
||||
if (languageVersion >= ScriptTarget.ES2015) {
|
||||
func = createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
parameters,
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
body);
|
||||
}
|
||||
else {
|
||||
func = createFunctionExpression(
|
||||
/*modifiers*/ undefined,
|
||||
/*asteriskToken*/ undefined,
|
||||
/*name*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
[createParameter(/*decorator*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ resolve),
|
||||
createParameter(/*decorator*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ reject)],
|
||||
parameters,
|
||||
/*type*/ undefined,
|
||||
createBlock([createStatement(
|
||||
createCall(
|
||||
createIdentifier("require"),
|
||||
/*typeArguments*/ undefined,
|
||||
[createArrayLiteral([firstOrUndefined(node.arguments) || createOmittedExpression()]), resolve, reject]
|
||||
))])
|
||||
)]);
|
||||
body);
|
||||
|
||||
// if there is a lexical 'this' in the import call arguments, ensure we indicate
|
||||
// that this new function expression indicates it captures 'this' so that the
|
||||
// es2015 transformer will properly substitute 'this' with '_this'.
|
||||
if (node.transformFlags & TransformFlags.ContainsLexicalThis) {
|
||||
setEmitFlags(func, EmitFlags.CapturesThis);
|
||||
}
|
||||
}
|
||||
|
||||
return createNew(createIdentifier("Promise"), /*typeArguments*/ undefined, [func]);
|
||||
}
|
||||
|
||||
function transformImportCallExpressionCommonJS(node: ImportCall): Expression {
|
||||
function transformImportCallExpressionCommonJS(node: ImportCall): Expression {
|
||||
// import("./blah")
|
||||
// emit as
|
||||
// Promise.resolve().then(function () { return require(x); }) /*CommonJs Require*/
|
||||
// We have to wrap require in then callback so that require is done in asynchronously
|
||||
// if we simply do require in resolve callback in Promise constructor. We will execute the loading immediately
|
||||
return createCall(
|
||||
createPropertyAccess(
|
||||
createCall(createPropertyAccess(createIdentifier("Promise"), "resolve"), /*typeArguments*/ undefined, /*argumentsArray*/ []),
|
||||
"then"),
|
||||
/*typeArguments*/ undefined,
|
||||
[createFunctionExpression(
|
||||
const promiseResolveCall = createCall(createPropertyAccess(createIdentifier("Promise"), "resolve"), /*typeArguments*/ undefined, /*argumentsArray*/ []);
|
||||
const requireCall = createCall(createIdentifier("require"), /*typeArguments*/ undefined, node.arguments);
|
||||
|
||||
let func: FunctionExpression | ArrowFunction;
|
||||
if (languageVersion >= ScriptTarget.ES2015) {
|
||||
func = createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
/*parameters*/ [],
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
requireCall);
|
||||
}
|
||||
else {
|
||||
func = createFunctionExpression(
|
||||
/*modifiers*/ undefined,
|
||||
/*asteriskToken*/ undefined,
|
||||
/*name*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
/*parameters*/ undefined,
|
||||
/*parameters*/ [],
|
||||
/*type*/ undefined,
|
||||
createBlock([createReturn(createCall(createIdentifier("require"), /*typeArguments*/ undefined, node.arguments))])
|
||||
)]);
|
||||
createBlock([createReturn(requireCall)]));
|
||||
|
||||
// if there is a lexical 'this' in the import call arguments, ensure we indicate
|
||||
// that this new function expression indicates it captures 'this' so that the
|
||||
// es2015 transformer will properly substitute 'this' with '_this'.
|
||||
if (node.transformFlags & TransformFlags.ContainsLexicalThis) {
|
||||
setEmitFlags(func, EmitFlags.CapturesThis);
|
||||
}
|
||||
}
|
||||
|
||||
return createCall(createPropertyAccess(promiseResolveCall, "then"), /*typeArguments*/ undefined, [func]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
//// [dynamicImportWithNestedThis_es2015.ts]
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
private _path = './other';
|
||||
|
||||
dynamic() {
|
||||
return import(this._path);
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
c.dynamic();
|
||||
|
||||
//// [dynamicImportWithNestedThis_es2015.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";
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
constructor() {
|
||||
this._path = './other';
|
||||
}
|
||||
dynamic() {
|
||||
return __syncRequire ? Promise.resolve().then(() => require(this._path)) : new Promise((resolve_1, reject_1) => { require([this._path], resolve_1, reject_1); });
|
||||
}
|
||||
}
|
||||
const c = new C();
|
||||
c.dynamic();
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
=== tests/cases/compiler/dynamicImportWithNestedThis_es2015.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
>C : Symbol(C, Decl(dynamicImportWithNestedThis_es2015.ts, 0, 0))
|
||||
|
||||
private _path = './other';
|
||||
>_path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es2015.ts, 1, 9))
|
||||
|
||||
dynamic() {
|
||||
>dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es2015.ts, 2, 27))
|
||||
|
||||
return import(this._path);
|
||||
>this._path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es2015.ts, 1, 9))
|
||||
>this : Symbol(C, Decl(dynamicImportWithNestedThis_es2015.ts, 0, 0))
|
||||
>_path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es2015.ts, 1, 9))
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
>c : Symbol(c, Decl(dynamicImportWithNestedThis_es2015.ts, 9, 5))
|
||||
>C : Symbol(C, Decl(dynamicImportWithNestedThis_es2015.ts, 0, 0))
|
||||
|
||||
c.dynamic();
|
||||
>c.dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es2015.ts, 2, 27))
|
||||
>c : Symbol(c, Decl(dynamicImportWithNestedThis_es2015.ts, 9, 5))
|
||||
>dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es2015.ts, 2, 27))
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
=== tests/cases/compiler/dynamicImportWithNestedThis_es2015.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
private _path = './other';
|
||||
>_path : string
|
||||
>'./other' : "./other"
|
||||
|
||||
dynamic() {
|
||||
>dynamic : () => Promise<any>
|
||||
|
||||
return import(this._path);
|
||||
>import(this._path) : Promise<any>
|
||||
>this._path : string
|
||||
>this : this
|
||||
>_path : string
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
>c : C
|
||||
>new C() : C
|
||||
>C : typeof C
|
||||
|
||||
c.dynamic();
|
||||
>c.dynamic() : Promise<any>
|
||||
>c.dynamic : () => Promise<any>
|
||||
>c : C
|
||||
>dynamic : () => Promise<any>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
//// [dynamicImportWithNestedThis_es5.ts]
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
private _path = './other';
|
||||
|
||||
dynamic() {
|
||||
return import(this._path);
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
c.dynamic();
|
||||
|
||||
//// [dynamicImportWithNestedThis_es5.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";
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
var C = /** @class */ (function () {
|
||||
function C() {
|
||||
this._path = './other';
|
||||
}
|
||||
C.prototype.dynamic = function () {
|
||||
var _this = this;
|
||||
return __syncRequire ? Promise.resolve().then(function () { return require(_this._path); }) : new Promise(function (resolve_1, reject_1) { require([_this._path], resolve_1, reject_1); });
|
||||
};
|
||||
return C;
|
||||
}());
|
||||
var c = new C();
|
||||
c.dynamic();
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
=== tests/cases/compiler/dynamicImportWithNestedThis_es5.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
>C : Symbol(C, Decl(dynamicImportWithNestedThis_es5.ts, 0, 0))
|
||||
|
||||
private _path = './other';
|
||||
>_path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es5.ts, 1, 9))
|
||||
|
||||
dynamic() {
|
||||
>dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es5.ts, 2, 27))
|
||||
|
||||
return import(this._path);
|
||||
>this._path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es5.ts, 1, 9))
|
||||
>this : Symbol(C, Decl(dynamicImportWithNestedThis_es5.ts, 0, 0))
|
||||
>_path : Symbol(C._path, Decl(dynamicImportWithNestedThis_es5.ts, 1, 9))
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
>c : Symbol(c, Decl(dynamicImportWithNestedThis_es5.ts, 9, 5))
|
||||
>C : Symbol(C, Decl(dynamicImportWithNestedThis_es5.ts, 0, 0))
|
||||
|
||||
c.dynamic();
|
||||
>c.dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es5.ts, 2, 27))
|
||||
>c : Symbol(c, Decl(dynamicImportWithNestedThis_es5.ts, 9, 5))
|
||||
>dynamic : Symbol(C.dynamic, Decl(dynamicImportWithNestedThis_es5.ts, 2, 27))
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
=== tests/cases/compiler/dynamicImportWithNestedThis_es5.ts ===
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
private _path = './other';
|
||||
>_path : string
|
||||
>'./other' : "./other"
|
||||
|
||||
dynamic() {
|
||||
>dynamic : () => Promise<any>
|
||||
|
||||
return import(this._path);
|
||||
>import(this._path) : Promise<any>
|
||||
>this._path : string
|
||||
>this : this
|
||||
>_path : string
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
>c : C
|
||||
>new C() : C
|
||||
>C : typeof C
|
||||
|
||||
c.dynamic();
|
||||
>c.dynamic() : Promise<any>
|
||||
>c.dynamic : () => Promise<any>
|
||||
>c : C
|
||||
>dynamic : () => Promise<any>
|
||||
|
||||
@@ -42,34 +42,34 @@ define(["require", "exports"], function (require, exports) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function fn() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield new Promise(function (resolve_1, reject_1) { require(['./test'], resolve_1, reject_1); }); // ONE
|
||||
const req = yield new Promise((resolve_1, reject_1) => { require(['./test'], resolve_1, reject_1); }); // ONE
|
||||
});
|
||||
}
|
||||
exports.fn = fn;
|
||||
class cl1 {
|
||||
m() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield new Promise(function (resolve_2, reject_2) { require(['./test'], resolve_2, reject_2); }); // TWO
|
||||
const req = yield new Promise((resolve_2, reject_2) => { require(['./test'], resolve_2, reject_2); }); // TWO
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.cl1 = cl1;
|
||||
exports.obj = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield new Promise(function (resolve_3, reject_3) { require(['./test'], resolve_3, reject_3); }); // THREE
|
||||
const req = yield new Promise((resolve_3, reject_3) => { require(['./test'], resolve_3, reject_3); }); // THREE
|
||||
})
|
||||
};
|
||||
class cl2 {
|
||||
constructor() {
|
||||
this.p = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield new Promise(function (resolve_4, reject_4) { require(['./test'], resolve_4, reject_4); }); // FOUR
|
||||
const req = yield new Promise((resolve_4, reject_4) => { require(['./test'], resolve_4, reject_4); }); // FOUR
|
||||
})
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.cl2 = cl2;
|
||||
exports.l = () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield new Promise(function (resolve_5, reject_5) { require(['./test'], resolve_5, reject_5); }); // FIVE
|
||||
const req = yield new Promise((resolve_5, reject_5) => { require(['./test'], resolve_5, reject_5); }); // FIVE
|
||||
});
|
||||
});
|
||||
|
||||
@@ -41,33 +41,33 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function fn() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield Promise.resolve().then(function () { return require('./test'); }); // ONE
|
||||
const req = yield Promise.resolve().then(() => require('./test')); // ONE
|
||||
});
|
||||
}
|
||||
exports.fn = fn;
|
||||
class cl1 {
|
||||
m() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield Promise.resolve().then(function () { return require('./test'); }); // TWO
|
||||
const req = yield Promise.resolve().then(() => require('./test')); // TWO
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.cl1 = cl1;
|
||||
exports.obj = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield Promise.resolve().then(function () { return require('./test'); }); // THREE
|
||||
const req = yield Promise.resolve().then(() => require('./test')); // THREE
|
||||
})
|
||||
};
|
||||
class cl2 {
|
||||
constructor() {
|
||||
this.p = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield Promise.resolve().then(function () { return require('./test'); }); // FOUR
|
||||
const req = yield Promise.resolve().then(() => require('./test')); // FOUR
|
||||
})
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.cl2 = cl2;
|
||||
exports.l = () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield Promise.resolve().then(function () { return require('./test'); }); // FIVE
|
||||
const req = yield Promise.resolve().then(() => require('./test')); // FIVE
|
||||
});
|
||||
|
||||
@@ -51,34 +51,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function fn() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield __syncRequire ? Promise.resolve().then(function () { return require('./test'); }) : new Promise(function (resolve_1, reject_1) { require(['./test'], resolve_1, reject_1); }); // ONE
|
||||
const req = yield __syncRequire ? Promise.resolve().then(() => require('./test')) : new Promise((resolve_1, reject_1) => { require(['./test'], resolve_1, reject_1); }); // ONE
|
||||
});
|
||||
}
|
||||
exports.fn = fn;
|
||||
class cl1 {
|
||||
m() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield __syncRequire ? Promise.resolve().then(function () { return require('./test'); }) : new Promise(function (resolve_2, reject_2) { require(['./test'], resolve_2, reject_2); }); // TWO
|
||||
const req = yield __syncRequire ? Promise.resolve().then(() => require('./test')) : new Promise((resolve_2, reject_2) => { require(['./test'], resolve_2, reject_2); }); // TWO
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.cl1 = cl1;
|
||||
exports.obj = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield __syncRequire ? Promise.resolve().then(function () { return require('./test'); }) : new Promise(function (resolve_3, reject_3) { require(['./test'], resolve_3, reject_3); }); // THREE
|
||||
const req = yield __syncRequire ? Promise.resolve().then(() => require('./test')) : new Promise((resolve_3, reject_3) => { require(['./test'], resolve_3, reject_3); }); // THREE
|
||||
})
|
||||
};
|
||||
class cl2 {
|
||||
constructor() {
|
||||
this.p = {
|
||||
m: () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield __syncRequire ? Promise.resolve().then(function () { return require('./test'); }) : new Promise(function (resolve_4, reject_4) { require(['./test'], resolve_4, reject_4); }); // FOUR
|
||||
const req = yield __syncRequire ? Promise.resolve().then(() => require('./test')) : new Promise((resolve_4, reject_4) => { require(['./test'], resolve_4, reject_4); }); // FOUR
|
||||
})
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.cl2 = cl2;
|
||||
exports.l = () => __awaiter(this, void 0, void 0, function* () {
|
||||
const req = yield __syncRequire ? Promise.resolve().then(function () { return require('./test'); }) : new Promise(function (resolve_5, reject_5) { require(['./test'], resolve_5, reject_5); }); // FIVE
|
||||
const req = yield __syncRequire ? Promise.resolve().then(() => require('./test')) : new Promise((resolve_5, reject_5) => { require(['./test'], resolve_5, reject_5); }); // FIVE
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,6 +30,6 @@ exports.C = C;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
let p1 = Promise.resolve().then(function () { return require("./defaultPath"); });
|
||||
let p2 = Promise.resolve().then(function () { return require("./defaultPath"); });
|
||||
let p3 = Promise.resolve().then(function () { return require("./defaultPath"); });
|
||||
let p1 = Promise.resolve().then(() => require("./defaultPath"));
|
||||
let p2 = Promise.resolve().then(() => require("./defaultPath"));
|
||||
let p3 = Promise.resolve().then(() => require("./defaultPath"));
|
||||
|
||||
@@ -15,12 +15,12 @@ function returnDynamicLoad(path: string) {
|
||||
}
|
||||
|
||||
//// [importCallExpressionDeclarationEmit1.js]
|
||||
Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
var p0 = Promise.resolve().then(function () { return require(`${directory}\${moduleFile}`); });
|
||||
var p1 = Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
const p2 = Promise.resolve().then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); });
|
||||
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"));
|
||||
function returnDynamicLoad(path) {
|
||||
return Promise.resolve().then(function () { return require(path); });
|
||||
return Promise.resolve().then(() => require(path));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,23 +39,23 @@ define(["require", "exports"], function (require, exports) {
|
||||
define(["require", "exports"], function (require, exports) {
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = new Promise(function (resolve_3, reject_3) { require(["./0"], resolve_3, reject_3); });
|
||||
exports.p2 = new Promise((resolve_3, reject_3) => { require(["./0"], resolve_3, reject_3); });
|
||||
function foo() {
|
||||
const p2 = new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
const p2 = new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
class C {
|
||||
method() {
|
||||
const loadAsync = new Promise(function (resolve_5, reject_5) { require(["./0"], resolve_5, reject_5); });
|
||||
const loadAsync = new Promise((resolve_5, reject_5) => { require(["./0"], resolve_5, reject_5); });
|
||||
}
|
||||
}
|
||||
class D {
|
||||
method() {
|
||||
const loadAsync = new Promise(function (resolve_6, reject_6) { require(["./0"], resolve_6, reject_6); });
|
||||
const loadAsync = new Promise((resolve_6, reject_6) => { require(["./0"], resolve_6, reject_6); });
|
||||
}
|
||||
}
|
||||
exports.D = D;
|
||||
|
||||
@@ -36,23 +36,23 @@ exports.foo = foo;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Promise.resolve().then(function () { return require("./0"); });
|
||||
var p1 = Promise.resolve().then(function () { return require("./0"); });
|
||||
Promise.resolve().then(() => require("./0"));
|
||||
var p1 = Promise.resolve().then(() => require("./0"));
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = Promise.resolve().then(function () { return require("./0"); });
|
||||
exports.p2 = Promise.resolve().then(() => require("./0"));
|
||||
function foo() {
|
||||
const p2 = Promise.resolve().then(function () { return require("./0"); });
|
||||
const p2 = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
class C {
|
||||
method() {
|
||||
const loadAsync = Promise.resolve().then(function () { return require("./0"); });
|
||||
const loadAsync = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
}
|
||||
class D {
|
||||
method() {
|
||||
const loadAsync = Promise.resolve().then(function () { return require("./0"); });
|
||||
const loadAsync = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
}
|
||||
exports.D = D;
|
||||
|
||||
@@ -56,23 +56,23 @@ export class D {
|
||||
"use strict";
|
||||
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
__syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
__syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_3, reject_3) { require(["./0"], resolve_3, reject_3); });
|
||||
exports.p2 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_3, reject_3) => { require(["./0"], resolve_3, reject_3); });
|
||||
function foo() {
|
||||
const p2 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
const p2 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
class C {
|
||||
method() {
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_5, reject_5) { require(["./0"], resolve_5, reject_5); });
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_5, reject_5) => { require(["./0"], resolve_5, reject_5); });
|
||||
}
|
||||
}
|
||||
class D {
|
||||
method() {
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_6, reject_6) { require(["./0"], resolve_6, reject_6); });
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_6, reject_6) => { require(["./0"], resolve_6, reject_6); });
|
||||
}
|
||||
}
|
||||
exports.D = D;
|
||||
|
||||
@@ -12,8 +12,8 @@ const p4 = import("pathToModule", "secondModule");
|
||||
|
||||
//// [importCallExpressionGrammarError.js]
|
||||
var a = ["./0"];
|
||||
Promise.resolve().then(function () { return require(...["PathModule"]); });
|
||||
var p1 = Promise.resolve().then(function () { return require(...a); });
|
||||
const p2 = Promise.resolve().then(function () { return require(); });
|
||||
const p3 = Promise.resolve().then(function () { return require(); });
|
||||
const p4 = Promise.resolve().then(function () { return require("pathToModule", "secondModule"); });
|
||||
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"));
|
||||
|
||||
@@ -27,13 +27,13 @@ define(["require", "exports"], function (require, exports) {
|
||||
define(["require", "exports"], function (require, exports) {
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = new Promise(function (resolve_3, reject_3) { require(["./0"], resolve_3, reject_3); });
|
||||
exports.p2 = new Promise((resolve_3, reject_3) => { require(["./0"], resolve_3, reject_3); });
|
||||
function foo() {
|
||||
const p2 = new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
const p2 = new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -35,5 +35,5 @@ define(["require", "exports"], function (require, exports) {
|
||||
b.print();
|
||||
});
|
||||
}
|
||||
foo(new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); }));
|
||||
foo(new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); }));
|
||||
});
|
||||
|
||||
@@ -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(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); })).B {
|
||||
class C extends (await new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); })).B {
|
||||
}
|
||||
var c = new C();
|
||||
c.print();
|
||||
|
||||
@@ -64,30 +64,30 @@ define(["require", "exports"], function (require, exports) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class C {
|
||||
constructor() {
|
||||
this.myModule = new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
this.myModule = new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
}
|
||||
method() {
|
||||
const loadAsync = new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
const loadAsync = new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await new Promise(function (resolve_3, reject_3) { require(["./1"], resolve_3, reject_3); });
|
||||
let one = await new Promise((resolve_3, reject_3) => { require(["./1"], resolve_3, reject_3); });
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
}
|
||||
class D {
|
||||
constructor() {
|
||||
this.myModule = new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
this.myModule = new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
method() {
|
||||
const loadAsync = new Promise(function (resolve_5, reject_5) { require(["./0"], resolve_5, reject_5); });
|
||||
const loadAsync = new Promise((resolve_5, reject_5) => { require(["./0"], resolve_5, reject_5); });
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await new Promise(function (resolve_6, reject_6) { require(["./1"], resolve_6, reject_6); });
|
||||
let one = await new Promise((resolve_6, reject_6) => { require(["./1"], resolve_6, reject_6); });
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,12 +24,12 @@ exports.foo = foo;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Promise.resolve().then(function () { return require("./0"); });
|
||||
var p1 = Promise.resolve().then(function () { return require("./0"); });
|
||||
Promise.resolve().then(() => require("./0"));
|
||||
var p1 = Promise.resolve().then(() => require("./0"));
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = Promise.resolve().then(function () { return require("./0"); });
|
||||
exports.p2 = Promise.resolve().then(() => require("./0"));
|
||||
function foo() {
|
||||
const p2 = Promise.resolve().then(function () { return require("./0"); });
|
||||
const p2 = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
|
||||
@@ -32,9 +32,9 @@ exports.backup = backup;
|
||||
async function compute(promise) {
|
||||
let j = await promise;
|
||||
if (!j) {
|
||||
j = await Promise.resolve().then(function () { return require("./1"); });
|
||||
j = await Promise.resolve().then(() => require("./1"));
|
||||
return j.backup();
|
||||
}
|
||||
return j.foo();
|
||||
}
|
||||
compute(Promise.resolve().then(function () { return require("./0"); }));
|
||||
compute(Promise.resolve().then(() => require("./0")));
|
||||
|
||||
@@ -31,4 +31,4 @@ function foo(x) {
|
||||
b.print();
|
||||
});
|
||||
}
|
||||
foo(Promise.resolve().then(function () { return require("./0"); }));
|
||||
foo(Promise.resolve().then(() => require("./0")));
|
||||
|
||||
@@ -22,7 +22,7 @@ class B {
|
||||
exports.B = B;
|
||||
//// [2.js]
|
||||
async function foo() {
|
||||
class C extends (await Promise.resolve().then(function () { return require("./0"); })).B {
|
||||
class C extends (await Promise.resolve().then(() => require("./0"))).B {
|
||||
}
|
||||
var c = new C();
|
||||
c.print();
|
||||
|
||||
@@ -59,30 +59,30 @@ exports.backup = backup;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class C {
|
||||
constructor() {
|
||||
this.myModule = Promise.resolve().then(function () { return require("./0"); });
|
||||
this.myModule = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
method() {
|
||||
const loadAsync = Promise.resolve().then(function () { return require("./0"); });
|
||||
const loadAsync = Promise.resolve().then(() => require("./0"));
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await Promise.resolve().then(function () { return require("./1"); });
|
||||
let one = await Promise.resolve().then(() => require("./1"));
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
}
|
||||
class D {
|
||||
constructor() {
|
||||
this.myModule = Promise.resolve().then(function () { return require("./0"); });
|
||||
this.myModule = Promise.resolve().then(() => require("./0"));
|
||||
}
|
||||
method() {
|
||||
const loadAsync = Promise.resolve().then(function () { return require("./0"); });
|
||||
const loadAsync = Promise.resolve().then(() => require("./0"));
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await Promise.resolve().then(function () { return require("./1"); });
|
||||
let one = await Promise.resolve().then(() => require("./1"));
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ define(["require", "exports"], function (require, exports) {
|
||||
define(["require", "exports"], function (require, exports) {
|
||||
"use strict";
|
||||
return async function () {
|
||||
const something = await new Promise(function (resolve_1, reject_1) { require(["./something"], resolve_1, reject_1); });
|
||||
const something = await new Promise((resolve_1, reject_1) => { require(["./something"], resolve_1, reject_1); });
|
||||
};
|
||||
});
|
||||
|
||||
@@ -14,5 +14,5 @@ module.exports = 42;
|
||||
//// [index.js]
|
||||
"use strict";
|
||||
module.exports = async function () {
|
||||
const something = await Promise.resolve().then(function () { return require("./something"); });
|
||||
const something = await Promise.resolve().then(() => require("./something"));
|
||||
};
|
||||
|
||||
@@ -34,6 +34,6 @@ export = async function() {
|
||||
"use strict";
|
||||
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
||||
return async function () {
|
||||
const something = await (__syncRequire ? Promise.resolve().then(function () { return require("./something"); }) : new Promise(function (resolve_1, reject_1) { require(["./something"], resolve_1, reject_1); }));
|
||||
const something = await (__syncRequire ? Promise.resolve().then(() => require("./something")) : new Promise((resolve_1, reject_1) => { require(["./something"], resolve_1, reject_1); }));
|
||||
};
|
||||
});
|
||||
|
||||
@@ -13,5 +13,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function foo() { return "foo"; }
|
||||
exports.foo = foo;
|
||||
//// [1.js]
|
||||
var p1 = Promise.resolve().then(function () { return require("./0"); });
|
||||
var p1 = Promise.resolve().then(() => require("./0"));
|
||||
function arguments() { } // this is allow as the file doesn't have implicit "use strict"
|
||||
|
||||
@@ -15,5 +15,5 @@ function foo() { return "foo"; }
|
||||
exports.foo = foo;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
var p1 = Promise.resolve().then(function () { return require("./0"); });
|
||||
var p1 = Promise.resolve().then(() => require("./0"));
|
||||
function arguments() { }
|
||||
|
||||
@@ -44,13 +44,13 @@ function foo() {
|
||||
"use strict";
|
||||
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
__syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
__syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
var p1 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
p1.then(zero => {
|
||||
return zero.foo();
|
||||
});
|
||||
exports.p2 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_3, reject_3) { require(["./0"], resolve_3, reject_3); });
|
||||
exports.p2 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_3, reject_3) => { require(["./0"], resolve_3, reject_3); });
|
||||
function foo() {
|
||||
const p2 = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
const p2 = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -52,5 +52,5 @@ foo(import("./0"));
|
||||
b.print();
|
||||
});
|
||||
}
|
||||
foo(__syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); }));
|
||||
foo(__syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); }));
|
||||
});
|
||||
|
||||
@@ -43,7 +43,7 @@ foo();
|
||||
"use strict";
|
||||
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
||||
async function foo() {
|
||||
class C extends (await (__syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); }))).B {
|
||||
class C extends (await (__syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); }))).B {
|
||||
}
|
||||
var c = new C();
|
||||
c.print();
|
||||
|
||||
@@ -89,30 +89,30 @@ export class D {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class C {
|
||||
constructor() {
|
||||
this.myModule = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_1, reject_1) { require(["./0"], resolve_1, reject_1); });
|
||||
this.myModule = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_1, reject_1) => { require(["./0"], resolve_1, reject_1); });
|
||||
}
|
||||
method() {
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_2, reject_2) { require(["./0"], resolve_2, reject_2); });
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_2, reject_2) => { require(["./0"], resolve_2, reject_2); });
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await (__syncRequire ? Promise.resolve().then(function () { return require("./1"); }) : new Promise(function (resolve_3, reject_3) { require(["./1"], resolve_3, reject_3); }));
|
||||
let one = await (__syncRequire ? Promise.resolve().then(() => require("./1")) : new Promise((resolve_3, reject_3) => { require(["./1"], resolve_3, reject_3); }));
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
}
|
||||
class D {
|
||||
constructor() {
|
||||
this.myModule = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_4, reject_4) { require(["./0"], resolve_4, reject_4); });
|
||||
this.myModule = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_4, reject_4) => { require(["./0"], resolve_4, reject_4); });
|
||||
}
|
||||
method() {
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(function () { return require("./0"); }) : new Promise(function (resolve_5, reject_5) { require(["./0"], resolve_5, reject_5); });
|
||||
const loadAsync = __syncRequire ? Promise.resolve().then(() => require("./0")) : new Promise((resolve_5, reject_5) => { require(["./0"], resolve_5, reject_5); });
|
||||
this.myModule.then(Zero => {
|
||||
console.log(Zero.foo());
|
||||
}, async (err) => {
|
||||
console.log(err);
|
||||
let one = await (__syncRequire ? Promise.resolve().then(function () { return require("./1"); }) : new Promise(function (resolve_6, reject_6) { require(["./1"], resolve_6, reject_6); }));
|
||||
let one = await (__syncRequire ? Promise.resolve().then(() => require("./1")) : new Promise((resolve_6, reject_6) => { require(["./1"], resolve_6, reject_6); }));
|
||||
console.log(one.backup());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -42,20 +42,20 @@ exports.C = C;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Promise.resolve().then(function () { return require(`${directory}\${moduleFile}`); });
|
||||
Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
var p1 = Promise.resolve().then(function () { return require(ValidSomeCondition() ? "./0" : "externalModule"); });
|
||||
var p1 = Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
var p11 = Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
const p2 = Promise.resolve().then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); });
|
||||
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"));
|
||||
p1.then(zero => {
|
||||
return zero.foo(); // ok, zero is any
|
||||
});
|
||||
let j;
|
||||
var p3 = Promise.resolve().then(function () { return require(j = getSpecifier()); });
|
||||
var p3 = Promise.resolve().then(() => require(j = getSpecifier()));
|
||||
function* loadModule(directories) {
|
||||
for (const directory of directories) {
|
||||
const path = `${directory}\moduleFile`;
|
||||
Promise.resolve().then(function () { return require(yield path); });
|
||||
Promise.resolve().then(() => require(yield path));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ var p4 = import(()=>"PathToModule");
|
||||
|
||||
//// [importCallExpressionSpecifierNotStringTypeError.js]
|
||||
// Error specifier is not assignable to string
|
||||
Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
var p1 = Promise.resolve().then(function () { return require(getSpecifier()); });
|
||||
const p2 = Promise.resolve().then(function () { return require(whatToLoad ? getSpecifier() : "defaulPath"); });
|
||||
Promise.resolve().then(() => require(getSpecifier()));
|
||||
var p1 = Promise.resolve().then(() => require(getSpecifier()));
|
||||
const p2 = Promise.resolve().then(() => require(whatToLoad ? getSpecifier() : "defaulPath"));
|
||||
p1.then(zero => {
|
||||
return zero.foo(); // ok, zero is any
|
||||
});
|
||||
var p3 = Promise.resolve().then(function () { return require(["path1", "path2"]); });
|
||||
var p4 = Promise.resolve().then(function () { return require(() => "PathToModule"); });
|
||||
var p3 = Promise.resolve().then(() => require(["path1", "path2"]));
|
||||
var p4 = Promise.resolve().then(() => require(() => "PathToModule"));
|
||||
|
||||
@@ -15,5 +15,5 @@ function foo() { return "foo"; }
|
||||
exports.foo = foo;
|
||||
//// [1.js]
|
||||
"use strict";
|
||||
var p1 = Promise.resolve().then(function () { return require("./0"); }); // error
|
||||
var p2 = Promise.resolve().then(function () { return require("./0"); }); // error
|
||||
var p1 = Promise.resolve().then(() => require("./0")); // error
|
||||
var p2 = Promise.resolve().then(() => require("./0")); // error
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// @lib: es2015
|
||||
// @target: es2015
|
||||
// @module: umd
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
private _path = './other';
|
||||
|
||||
dynamic() {
|
||||
return import(this._path);
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
c.dynamic();
|
||||
@@ -0,0 +1,14 @@
|
||||
// @lib: es2015
|
||||
// @target: es5
|
||||
// @module: umd
|
||||
// https://github.com/Microsoft/TypeScript/issues/17564
|
||||
class C {
|
||||
private _path = './other';
|
||||
|
||||
dynamic() {
|
||||
return import(this._path);
|
||||
}
|
||||
}
|
||||
|
||||
const c = new C();
|
||||
c.dynamic();
|
||||
Reference in New Issue
Block a user