[JS IR] export external declarations
This commit is contained in:
committed by
TeamCityServer
parent
ee8351b9c9
commit
03b9caa439
+8
-2
@@ -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>>>,
|
||||
|
||||
+4
-4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user