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:
1 parent
237b6f61f6
commit
79f919e8f5
5 files changed
+50123
-1
No files matched your search
@@ -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