From 8d61e9ba219a398f37618160746dc7ace191cdaf Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 20 Aug 2020 16:54:28 +0300 Subject: [PATCH] [KLIB] Load `@JsExport` annotated declarations explicitly --- .../js/lower/serialization/ir/JsIrFileSerializer.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt index 0d21f7d468d..1f3af3546ee 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt @@ -9,7 +9,10 @@ import org.jetbrains.kotlin.backend.common.LoggingContext import org.jetbrains.kotlin.backend.common.serialization.IrFileSerializer import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable import org.jetbrains.kotlin.descriptors.DeclarationDescriptor +import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrSymbol +import org.jetbrains.kotlin.ir.util.hasAnnotation +import org.jetbrains.kotlin.name.FqName class JsIrFileSerializer( logger: LoggingContext, @@ -23,4 +26,12 @@ class JsIrFileSerializer( expectDescriptorToSymbol, bodiesOnlyForInlines = bodiesOnlyForInlines, skipExpects = skipExpects -) +) { + companion object { + private val JS_EXPORT_FQN = FqName("kotlin.js.JsExport") + } + + override fun backendSpecificExplicitRoot(node: IrAnnotationContainer): Boolean { + return node.annotations.hasAnnotation(JS_EXPORT_FQN) + } +}