From e773626db5e7bf8aac48275edea457a65e1f9adb Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:05:36 -0700 Subject: [PATCH] Drop module transform code mentioning ES2015 --- .../transformers/module/esnextAnd2015.ts | 6 +- src/compiler/transformers/module/module.ts | 105 +++++------------- 2 files changed, 33 insertions(+), 78 deletions(-) diff --git a/src/compiler/transformers/module/esnextAnd2015.ts b/src/compiler/transformers/module/esnextAnd2015.ts index 7776e2c4bb2..1e02d58405d 100644 --- a/src/compiler/transformers/module/esnextAnd2015.ts +++ b/src/compiler/transformers/module/esnextAnd2015.ts @@ -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. diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index ae0d2a0aaa8..f6a5a302394 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -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,