mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Fixes stack overflow when exporting a lot in commonjs (#38994)
* Fixes stack overflow when exporting a lot in commonjs Fixes #38691 * Add missing test files
This commit is contained in:
@@ -99,7 +99,19 @@ namespace ts {
|
||||
append(statements, createUnderscoreUnderscoreESModule());
|
||||
}
|
||||
if (length(currentModuleInfo.exportedNames)) {
|
||||
append(statements, factory.createExpressionStatement(reduceLeft(currentModuleInfo.exportedNames, (prev, nextId) => factory.createAssignment(factory.createPropertyAccessExpression(factory.createIdentifier("exports"), factory.createIdentifier(idText(nextId))), prev), factory.createVoidZero() as Expression)));
|
||||
const chunkSize = 50;
|
||||
for (let i=0; i<currentModuleInfo.exportedNames!.length; i += chunkSize) {
|
||||
append(
|
||||
statements,
|
||||
factory.createExpressionStatement(
|
||||
reduceLeft(
|
||||
currentModuleInfo.exportedNames!.slice(i, i + chunkSize),
|
||||
(prev, nextId) => factory.createAssignment(factory.createPropertyAccessExpression(factory.createIdentifier("exports"), factory.createIdentifier(idText(nextId))), prev),
|
||||
factory.createVoidZero() as Expression
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, sourceElementVisitor, isStatement));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user