[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 ->
|
val exportData = modules.associate { module ->
|
||||||
module to module.files.associate { file ->
|
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 exportModelGenerator = ExportModelGenerator(backendContext, generateNamespacesForPackages = true)
|
||||||
|
|
||||||
val exportData = files.associate { file ->
|
val exportData = files.associate { file ->
|
||||||
file to exportModelGenerator.generateExport(file)
|
file to exportModelGenerator.generateExportWithExternals(file)
|
||||||
}
|
}
|
||||||
|
|
||||||
files.forEach { StaticMembersLowering(backendContext).lower(it) }
|
files.forEach { StaticMembersLowering(backendContext).lower(it) }
|
||||||
@@ -92,6 +92,12 @@ class IrModuleToJsTransformerTmp(
|
|||||||
return result
|
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(
|
private fun generateProgramFragments(
|
||||||
modules: Iterable<IrModuleFragment>,
|
modules: Iterable<IrModuleFragment>,
|
||||||
exportData: Map<IrModuleFragment, Map<IrFile, List<ExportedDeclaration>>>,
|
exportData: Map<IrModuleFragment, Map<IrFile, List<ExportedDeclaration>>>,
|
||||||
|
|||||||
+4
-4
@@ -6,10 +6,6 @@ declare namespace JS_TESTS {
|
|||||||
interface ExportedInternalInterface {
|
interface ExportedInternalInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
namespace foo {
|
|
||||||
interface FileLevelExportedExternalInterface {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
namespace foo {
|
namespace foo {
|
||||||
const exportedVal: number;
|
const exportedVal: number;
|
||||||
function exportedFun(): number;
|
function exportedFun(): number;
|
||||||
@@ -18,6 +14,10 @@ declare namespace JS_TESTS {
|
|||||||
readonly value: number;
|
readonly value: number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
namespace foo {
|
||||||
|
interface FileLevelExportedExternalInterface {
|
||||||
|
}
|
||||||
|
}
|
||||||
namespace foo {
|
namespace foo {
|
||||||
const fileLevelExportedVal: number;
|
const fileLevelExportedVal: number;
|
||||||
function fileLevelExportedFun(): number;
|
function fileLevelExportedFun(): number;
|
||||||
|
|||||||
Reference in New Issue
Block a user