[JS IR] Drop generateScriptModule flag from Merger class

This commit is contained in:
Alexander Korepanov
2022-11-04 14:59:07 +01:00
committed by Space Team
parent f1bce9fad4
commit 4d37c1d49c
3 changed files with 23 additions and 45 deletions
@@ -30,7 +30,6 @@ class JsExecutableProducer(
moduleKind = moduleKind,
fragments = modules.flatMap { it.fragments },
sourceMapsInfo = sourceMapsInfo,
generateScriptModule = false,
generateCallToMain = true,
outJsProgram = outJsProgram
)
@@ -64,7 +63,6 @@ class JsExecutableProducer(
moduleKind = moduleKind,
associatedModule.fragments,
sourceMapsInfo = sourceMapsInfo,
generateScriptModule = false,
generateCallToMain = generateCallToMain,
crossModuleReferences = crossRef,
outJsProgram = outJsProgram
@@ -89,7 +89,6 @@ class JsCodeGenerator(
program,
sourceMapsInfo,
relativeRequirePath,
false,
outJsProgram
)
}
@@ -388,7 +387,6 @@ private fun generateWrappedModuleBody(
program: JsIrProgram,
sourceMapsInfo: SourceMapsInfo?,
relativeRequirePath: Boolean,
generateScriptModule: Boolean,
outJsProgram: Boolean
): CompilationOutputs {
if (multiModule) {
@@ -402,7 +400,6 @@ private fun generateWrappedModuleBody(
moduleKind,
main.fragments,
sourceMapsInfo,
generateScriptModule,
generateCallToMain = true,
mainRef,
outJsProgram
@@ -418,7 +415,6 @@ private fun generateWrappedModuleBody(
moduleKind,
module.fragments,
sourceMapsInfo,
generateScriptModule,
generateCallToMain = false,
moduleRef,
outJsProgram
@@ -435,7 +431,6 @@ private fun generateWrappedModuleBody(
moduleKind,
program.asFragments(),
sourceMapsInfo,
generateScriptModule,
generateCallToMain = true,
outJsProgram = outJsProgram
)
@@ -447,7 +442,6 @@ fun generateSingleWrappedModuleBody(
moduleKind: ModuleKind,
fragments: List<JsIrProgramFragment>,
sourceMapsInfo: SourceMapsInfo?,
generateScriptModule: Boolean,
generateCallToMain: Boolean,
crossModuleReferences: CrossModuleReferences = CrossModuleReferences.Empty(moduleKind),
outJsProgram: Boolean = true
@@ -457,7 +451,6 @@ fun generateSingleWrappedModuleBody(
moduleKind,
fragments,
crossModuleReferences,
generateScriptModule,
generateRegionComments = true,
generateCallToMain,
).merge()
@@ -16,7 +16,6 @@ class Merger(
private val moduleKind: ModuleKind,
private val fragments: List<JsIrProgramFragment>,
private val crossModuleReferences: CrossModuleReferences,
private val generateScriptModule: Boolean,
private val generateRegionComments: Boolean,
private val generateCallToMain: Boolean,
) {
@@ -239,48 +238,36 @@ class Merger(
val program = JsProgram()
if (generateScriptModule) {
with(program.globalBlock) {
polyfillDeclarationBlock.statements
.takeIf { it.isNotEmpty() }
?.let { statements.addWithComment("block: polyfills", it) }
val internalModuleName = ReservedJsNames.makeInternalModuleName()
val rootFunction = JsFunction(program.rootScope, JsBlock(), "root function").apply {
parameters += JsParameter(internalModuleName)
parameters += (importedJsModules).map { JsParameter(it.internalName) }
with(body) {
if (!isEsModules) {
statements += JsStringLiteral("use strict").makeStmt()
}
statements.addWithComment("block: imports", importStatements)
statements += moduleBody
statements.addWithComment("block: exports", exportStatements)
}
} else {
val internalModuleName = ReservedJsNames.makeInternalModuleName()
val rootFunction = JsFunction(program.rootScope, JsBlock(), "root function").apply {
parameters += JsParameter(internalModuleName)
parameters += (importedJsModules).map { JsParameter(it.internalName) }
with(body) {
if (!isEsModules) {
statements += JsStringLiteral("use strict").makeStmt()
}
statements.addWithComment("block: imports", importStatements)
statements += moduleBody
statements.addWithComment("block: exports", exportStatements)
if (generateCallToMain) {
callToMain?.let { this.statements += it }
}
this.statements += JsReturn(internalModuleName.makeRef())
if (generateCallToMain) {
callToMain?.let { this.statements += it }
}
this.statements += JsReturn(internalModuleName.makeRef())
}
polyfillDeclarationBlock.statements
.takeIf { it.isNotEmpty() }
?.let { program.globalBlock.statements.addWithComment("block: polyfills", it) }
program.globalBlock.statements += ModuleWrapperTranslation.wrap(
moduleName,
rootFunction,
importedJsModules,
program,
kind = moduleKind
)
}
polyfillDeclarationBlock.statements
.takeIf { it.isNotEmpty() }
?.let { program.globalBlock.statements.addWithComment("block: polyfills", it) }
program.globalBlock.statements += ModuleWrapperTranslation.wrap(
moduleName,
rootFunction,
importedJsModules,
program,
kind = moduleKind
)
return program
}