[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>>>,
@@ -6,10 +6,6 @@ declare namespace JS_TESTS {
interface ExportedInternalInterface {
}
}
namespace foo {
interface FileLevelExportedExternalInterface {
}
}
namespace foo {
const exportedVal: number;
function exportedFun(): number;
@@ -18,6 +14,10 @@ declare namespace JS_TESTS {
readonly value: number;
}
}
namespace foo {
interface FileLevelExportedExternalInterface {
}
}
namespace foo {
const fileLevelExportedVal: number;
function fileLevelExportedFun(): number;