[JS IR] export external declarations

This commit is contained in:
Anton Bannykh
2021-10-20 18:32:59 +03:00
committed by TeamCityServer
parent ee8351b9c9
commit 03b9caa439
2 changed files with 12 additions and 6 deletions
@@ -47,7 +47,7 @@ class IrModuleToJsTransformerTmp(
val exportData = modules.associate { module ->
module to module.files.associate { file ->
file to exportModelGenerator.generateExport(file)
file to exportModelGenerator.generateExportWithExternals(file)
}
}
@@ -72,7 +72,7 @@ class IrModuleToJsTransformerTmp(
val exportModelGenerator = ExportModelGenerator(backendContext, generateNamespacesForPackages = true)
val exportData = files.associate { file ->
file to exportModelGenerator.generateExport(file)
file to exportModelGenerator.generateExportWithExternals(file)
}
files.forEach { StaticMembersLowering(backendContext).lower(it) }
@@ -92,6 +92,12 @@ class IrModuleToJsTransformerTmp(
return result
}
private fun ExportModelGenerator.generateExportWithExternals(irFile: IrFile): List<ExportedDeclaration> {
val exports = generateExport(irFile)
val additionalExports = backendContext.externalPackageFragment[irFile.symbol]?.let { generateExport(it) } ?: emptyList()
return additionalExports + exports
}
private fun generateProgramFragments(
modules: Iterable<IrModuleFragment>,
exportData: Map<IrModuleFragment, Map<IrFile, List<ExportedDeclaration>>>,