[JS IR] save the desired JS output file name in the klib.
This is only usedful for code splitting. The output .js file name is provided by the build system during the module compilation. It is desirable to keep the .js output file names same as in old BE, but calculating those name during the klib -> js phase is tricky. Thus the desired names are saved in the klib, and used later on.
This commit is contained in:
committed by
TeamCityServer
parent
6633a9edc0
commit
7bd9462ffb
@@ -54,7 +54,7 @@ fun compile(
|
||||
propertyLazyInitialization: Boolean,
|
||||
legacyPropertyAccess: Boolean = false,
|
||||
): CompilerResult {
|
||||
val (moduleFragment: IrModuleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) =
|
||||
val (moduleFragment: IrModuleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer, moduleToName) =
|
||||
loadIr(project, mainModule, analyzer, configuration, allDependencies, friendDependencies, irFactory)
|
||||
|
||||
val moduleDescriptor = moduleFragment.descriptor
|
||||
@@ -109,7 +109,8 @@ fun compile(
|
||||
fullJs = true,
|
||||
dceJs = false,
|
||||
multiModule = multiModule,
|
||||
relativeRequirePath = relativeRequirePath
|
||||
relativeRequirePath = relativeRequirePath,
|
||||
moduleToName = moduleToName,
|
||||
)
|
||||
return transformer.generateModule(allModules)
|
||||
} else {
|
||||
@@ -120,7 +121,8 @@ fun compile(
|
||||
fullJs = generateFullJs,
|
||||
dceJs = generateDceJs,
|
||||
multiModule = multiModule,
|
||||
relativeRequirePath = relativeRequirePath
|
||||
relativeRequirePath = relativeRequirePath,
|
||||
moduleToName = moduleToName,
|
||||
)
|
||||
return transformer.generateModule(allModules)
|
||||
}
|
||||
|
||||
+4
-3
@@ -31,7 +31,8 @@ class IrModuleToJsTransformer(
|
||||
private val fullJs: Boolean = true,
|
||||
private val dceJs: Boolean = false,
|
||||
private val multiModule: Boolean = false,
|
||||
private val relativeRequirePath: Boolean = false
|
||||
private val relativeRequirePath: Boolean = false,
|
||||
private val moduleToName: Map<IrModuleFragment, String> = emptyMap()
|
||||
) {
|
||||
private val generateRegionComments = backendContext.configuration.getBoolean(JSConfigurationKeys.GENERATE_REGION_COMMENTS)
|
||||
|
||||
@@ -91,7 +92,7 @@ class IrModuleToJsTransformer(
|
||||
)
|
||||
|
||||
val dependencies = others.mapIndexed { index, module ->
|
||||
val moduleName = sanitizeName(module.safeName)
|
||||
val moduleName = moduleToName[module] ?: sanitizeName(module.safeName)
|
||||
|
||||
val exportedDeclarations = ExportModelGenerator(backendContext).let { module.files.flatMap { file -> it.generateExport(file) } }
|
||||
|
||||
@@ -206,7 +207,7 @@ class IrModuleToJsTransformer(
|
||||
}
|
||||
|
||||
val moduleName = declareFreshGlobal(module.safeName)
|
||||
modules += JsImportedModule(moduleName.ident, moduleName, moduleName.makeRef(), relativeRequirePath)
|
||||
modules += JsImportedModule(moduleToName[module] ?: moduleName.ident, moduleName, moduleName.makeRef(), relativeRequirePath)
|
||||
|
||||
names.forEach {
|
||||
imports += JsVars(JsVars.JsVar(JsName(it), JsNameRef(it, JsNameRef("\$crossModule\$", moduleName.makeRef()))))
|
||||
|
||||
Reference in New Issue
Block a user