mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Drop module transform code mentioning ES2015
This commit is contained in:
@@ -242,7 +242,7 @@ export function transformECMAScriptModule(context: TransformationContext): (x: S
|
||||
]),
|
||||
),
|
||||
],
|
||||
/*flags*/ languageVersion >= ScriptTarget.ES2015 ? NodeFlags.Const : NodeFlags.None,
|
||||
NodeFlags.Const,
|
||||
),
|
||||
);
|
||||
importRequireStatements = [importStatement, requireStatement];
|
||||
@@ -277,7 +277,7 @@ export function transformECMAScriptModule(context: TransformationContext): (x: S
|
||||
createRequireCall(node),
|
||||
),
|
||||
],
|
||||
/*flags*/ languageVersion >= ScriptTarget.ES2015 ? NodeFlags.Const : NodeFlags.None,
|
||||
NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
node,
|
||||
@@ -331,7 +331,7 @@ export function transformECMAScriptModule(context: TransformationContext): (x: S
|
||||
function visitExportDeclaration(node: ExportDeclaration) {
|
||||
const updatedModuleSpecifier = rewriteModuleSpecifier(node.moduleSpecifier, compilerOptions);
|
||||
if (
|
||||
(compilerOptions.module !== undefined && compilerOptions.module > ModuleKind.ES2015)
|
||||
compilerOptions.module !== undefined
|
||||
|| !node.exportClause || !isNamespaceExport(node.exportClause) || !node.moduleSpecifier
|
||||
) {
|
||||
// Either ill-formed or don't need to be tranformed.
|
||||
|
||||
@@ -1217,19 +1217,18 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
: firstArgument && rewriteOrShim
|
||||
? isStringLiteral(firstArgument) ? rewriteModuleSpecifier(firstArgument, compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(firstArgument)
|
||||
: firstArgument;
|
||||
const containsLexicalThis = !!(node.transformFlags & TransformFlags.ContainsLexicalThis);
|
||||
switch (compilerOptions.module) {
|
||||
case ModuleKind.AMD:
|
||||
return createImportCallExpressionAMD(argument, containsLexicalThis);
|
||||
return createImportCallExpressionAMD(argument);
|
||||
case ModuleKind.UMD:
|
||||
return createImportCallExpressionUMD(argument ?? factory.createVoidZero(), containsLexicalThis);
|
||||
return createImportCallExpressionUMD(argument ?? factory.createVoidZero());
|
||||
case ModuleKind.CommonJS:
|
||||
default:
|
||||
return createImportCallExpressionCommonJS(argument);
|
||||
}
|
||||
}
|
||||
|
||||
function createImportCallExpressionUMD(arg: Expression, containsLexicalThis: boolean): Expression {
|
||||
function createImportCallExpressionUMD(arg: Expression): Expression {
|
||||
// (function (factory) {
|
||||
// ... (regular UMD)
|
||||
// }
|
||||
@@ -1251,7 +1250,7 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
/*questionToken*/ undefined,
|
||||
/*whenTrue*/ createImportCallExpressionCommonJS(arg),
|
||||
/*colonToken*/ undefined,
|
||||
/*whenFalse*/ createImportCallExpressionAMD(argClone, containsLexicalThis),
|
||||
/*whenFalse*/ createImportCallExpressionAMD(argClone),
|
||||
);
|
||||
}
|
||||
else {
|
||||
@@ -1263,13 +1262,13 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
/*questionToken*/ undefined,
|
||||
/*whenTrue*/ createImportCallExpressionCommonJS(temp, /*isInlineable*/ true),
|
||||
/*colonToken*/ undefined,
|
||||
/*whenFalse*/ createImportCallExpressionAMD(temp, containsLexicalThis),
|
||||
/*whenFalse*/ createImportCallExpressionAMD(temp),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function createImportCallExpressionAMD(arg: Expression | undefined, containsLexicalThis: boolean): Expression {
|
||||
function createImportCallExpressionAMD(arg: Expression | undefined): Expression {
|
||||
// improt("./blah")
|
||||
// emit as
|
||||
// define(["require", "exports", "blah"], function (require, exports) {
|
||||
@@ -1292,35 +1291,14 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
),
|
||||
]);
|
||||
|
||||
let func: FunctionExpression | ArrowFunction;
|
||||
if (languageVersion >= ScriptTarget.ES2015) {
|
||||
func = factory.createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
parameters,
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
body,
|
||||
);
|
||||
}
|
||||
else {
|
||||
func = factory.createFunctionExpression(
|
||||
/*modifiers*/ undefined,
|
||||
/*asteriskToken*/ undefined,
|
||||
/*name*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
parameters,
|
||||
/*type*/ undefined,
|
||||
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 (containsLexicalThis) {
|
||||
setEmitFlags(func, EmitFlags.CapturesThis);
|
||||
}
|
||||
}
|
||||
const func = factory.createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
parameters,
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
body,
|
||||
);
|
||||
|
||||
const promise = factory.createNewExpression(factory.createIdentifier("Promise"), /*typeArguments*/ undefined, [func]);
|
||||
if (getESModuleInterop(compilerOptions)) {
|
||||
@@ -1343,19 +1321,11 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
factory.createPropertyAccessExpression(factory.createIdentifier("Promise"), "resolve"),
|
||||
/*typeArguments*/ undefined,
|
||||
/*argumentsArray*/ needSyncEval
|
||||
? languageVersion >= ScriptTarget.ES2015
|
||||
? [
|
||||
factory.createTemplateExpression(factory.createTemplateHead(""), [
|
||||
factory.createTemplateSpan(arg, factory.createTemplateTail("")),
|
||||
]),
|
||||
]
|
||||
: [
|
||||
factory.createCallExpression(
|
||||
factory.createPropertyAccessExpression(factory.createStringLiteral(""), "concat"),
|
||||
/*typeArguments*/ undefined,
|
||||
[arg],
|
||||
),
|
||||
]
|
||||
? [
|
||||
factory.createTemplateExpression(factory.createTemplateHead(""), [
|
||||
factory.createTemplateSpan(arg, factory.createTemplateTail("")),
|
||||
]),
|
||||
]
|
||||
: [],
|
||||
);
|
||||
|
||||
@@ -1378,29 +1348,14 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
]
|
||||
: [];
|
||||
|
||||
let func: FunctionExpression | ArrowFunction;
|
||||
if (languageVersion >= ScriptTarget.ES2015) {
|
||||
func = factory.createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
/*parameters*/ parameters,
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
requireCall,
|
||||
);
|
||||
}
|
||||
else {
|
||||
func = factory.createFunctionExpression(
|
||||
/*modifiers*/ undefined,
|
||||
/*asteriskToken*/ undefined,
|
||||
/*name*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
/*parameters*/ parameters,
|
||||
/*type*/ undefined,
|
||||
factory.createBlock([factory.createReturnStatement(requireCall)]),
|
||||
);
|
||||
}
|
||||
|
||||
const func = factory.createArrowFunction(
|
||||
/*modifiers*/ undefined,
|
||||
/*typeParameters*/ undefined,
|
||||
/*parameters*/ parameters,
|
||||
/*type*/ undefined,
|
||||
/*equalsGreaterThanToken*/ undefined,
|
||||
requireCall,
|
||||
);
|
||||
const downleveledImport = factory.createCallExpression(factory.createPropertyAccessExpression(promiseResolveCall, "then"), /*typeArguments*/ undefined, [func]);
|
||||
|
||||
return downleveledImport;
|
||||
@@ -1489,7 +1444,7 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
/*modifiers*/ undefined,
|
||||
factory.createVariableDeclarationList(
|
||||
variables,
|
||||
languageVersion >= ScriptTarget.ES2015 ? NodeFlags.Const : NodeFlags.None,
|
||||
NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
/*location*/ node,
|
||||
@@ -1520,7 +1475,7 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
/*original*/ node,
|
||||
),
|
||||
],
|
||||
languageVersion >= ScriptTarget.ES2015 ? NodeFlags.Const : NodeFlags.None,
|
||||
NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1588,7 +1543,7 @@ export function transformModule(context: TransformationContext): (x: SourceFile
|
||||
createRequireCall(node),
|
||||
),
|
||||
],
|
||||
/*flags*/ languageVersion >= ScriptTarget.ES2015 ? NodeFlags.Const : NodeFlags.None,
|
||||
NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
node,
|
||||
|
||||
Reference in New Issue
Block a user