Skip to content

Commit 3baf06d

Browse files
committed
[Experiment]
1 parent b0576b2 commit 3baf06d

File tree

6 files changed

+13
-13
lines changed

6 files changed

+13
-13
lines changed

src/compiler/transformers/module/module.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,7 @@ namespace ts {
755755
return factory.createComma(factory.createAssignment(temp, arg), factory.createConditionalExpression(
756756
/*condition*/ factory.createIdentifier("__syncRequire"),
757757
/*questionToken*/ undefined,
758-
/*whenTrue*/ createImportCallExpressionCommonJS(temp),
758+
/*whenTrue*/ createImportCallExpressionCommonJS(temp, /* isInlineable */ true),
759759
/*colonToken*/ undefined,
760760
/*whenFalse*/ createImportCallExpressionAMD(temp, containsLexicalThis)
761761
));
@@ -820,15 +820,15 @@ namespace ts {
820820
return promise;
821821
}
822822

823-
function createImportCallExpressionCommonJS(arg: Expression | undefined): Expression {
823+
function createImportCallExpressionCommonJS(arg: Expression | undefined, isInlineable?: boolean): Expression {
824824
// import(x)
825825
// emit as
826826
// var _a;
827827
// (_a = x, Promise.resolve().then(() => require(_a)) /*CommonJs Require*/
828828
// We have to wrap require in then callback so that require is done in asynchronously
829829
// if we simply do require in resolve callback in Promise constructor. We will execute the loading immediately
830830
// If the arg is not inlineable, we have to evaluate it in the current scope with a temp var
831-
const temp = arg && !isSimpleInlineableExpression(arg) ? factory.createTempVariable(hoistVariableDeclaration) : undefined;
831+
const temp = arg && !isSimpleInlineableExpression(arg) && !isInlineable ? factory.createTempVariable(hoistVariableDeclaration) : undefined;
832832
const promiseResolveCall = factory.createCallExpression(
833833
factory.createPropertyAccessExpression(factory.createIdentifier("Promise"), "resolve"),
834834
/*typeArguments*/ undefined,

tests/baselines/reference/dynamicImportWithNestedThis_es2015.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ c.dynamic();
2929
this._path = './other';
3030
}
3131
dynamic() {
32-
var _a, _b;
33-
return _a = this._path, __syncRequire ? (_b = _a, Promise.resolve().then(() => require(_b))) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); });
32+
var _a;
33+
return _a = this._path, __syncRequire ? Promise.resolve().then(() => require(_a)) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); });
3434
}
3535
}
3636
const c = new C();

tests/baselines/reference/dynamicImportWithNestedThis_es5.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ c.dynamic();
2929
this._path = './other';
3030
}
3131
C.prototype.dynamic = function () {
32-
var _a, _b;
33-
return _a = this._path, __syncRequire ? (_b = _a, Promise.resolve().then(function () { return require(_b); })) : new Promise(function (resolve_1, reject_1) { require([_a], resolve_1, reject_1); });
32+
var _a;
33+
return _a = this._path, __syncRequire ? Promise.resolve().then(function () { return require(_a); }) : new Promise(function (resolve_1, reject_1) { require([_a], resolve_1, reject_1); });
3434
};
3535
return C;
3636
}());

tests/baselines/reference/importCallExpressionInUMD5.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
5151
// https://github.com/microsoft/TypeScript/issues/36780
5252
function func() {
5353
return __awaiter(this, void 0, void 0, function* () {
54-
var _a, _b;
54+
var _a;
5555
const packageName = '.';
56-
const packageJson = yield (_a = packageName + '/package.json', __syncRequire ? (_b = _a, Promise.resolve().then(() => require(_b))) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); }));
56+
const packageJson = yield (_a = packageName + '/package.json', __syncRequire ? Promise.resolve().then(() => require(_a)) : new Promise((resolve_1, reject_1) => { require([_a], resolve_1, reject_1); }));
5757
});
5858
}
5959
});

tests/baselines/reference/importCallExpressionNestedUMD.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
4545
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
4646
function foo() {
4747
return __awaiter(this, void 0, void 0, function* () {
48-
var _a, _b;
49-
return yield (_a = (yield __syncRequire ? Promise.resolve().then(() => require("./foo")) : new Promise((resolve_1, reject_1) => { require(["./foo"], resolve_1, reject_1); })).default, __syncRequire ? (_b = _a, Promise.resolve().then(() => require(_b))) : new Promise((resolve_2, reject_2) => { require([_a], resolve_2, reject_2); }));
48+
var _a;
49+
return yield (_a = (yield __syncRequire ? Promise.resolve().then(() => require("./foo")) : new Promise((resolve_1, reject_1) => { require(["./foo"], resolve_1, reject_1); })).default, __syncRequire ? Promise.resolve().then(() => require(_a)) : new Promise((resolve_2, reject_2) => { require([_a], resolve_2, reject_2); }));
5050
});
5151
}
5252
});

tests/baselines/reference/importCallExpressionNestedUMD2.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
7373
function foo() {
7474
return __awaiter(this, void 0, void 0, function () {
7575
return __generator(this, function (_a) {
76-
var _b, _c;
76+
var _b;
7777
switch (_a.label) {
7878
case 0: return [4 /*yield*/, __syncRequire ? Promise.resolve().then(function () { return require("./foo"); }) : new Promise(function (resolve_1, reject_1) { require(["./foo"], resolve_1, reject_1); })];
79-
case 1: return [4 /*yield*/, (_b = (_a.sent()).default, __syncRequire ? (_c = _b, Promise.resolve().then(function () { return require(_c); })) : new Promise(function (resolve_2, reject_2) { require([_b], resolve_2, reject_2); }))];
79+
case 1: return [4 /*yield*/, (_b = (_a.sent()).default, __syncRequire ? Promise.resolve().then(function () { return require(_b); }) : new Promise(function (resolve_2, reject_2) { require([_b], resolve_2, reject_2); }))];
8080
case 2: return [2 /*return*/, _a.sent()];
8181
}
8282
});

0 commit comments

Comments
 (0)