[KLIB] Load @JsExport annotated declarations explicitly
This commit is contained in:
+12
-1
@@ -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.IrFileSerializer
|
||||||
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.util.hasAnnotation
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
class JsIrFileSerializer(
|
class JsIrFileSerializer(
|
||||||
logger: LoggingContext,
|
logger: LoggingContext,
|
||||||
@@ -23,4 +26,12 @@ class JsIrFileSerializer(
|
|||||||
expectDescriptorToSymbol,
|
expectDescriptorToSymbol,
|
||||||
bodiesOnlyForInlines = bodiesOnlyForInlines,
|
bodiesOnlyForInlines = bodiesOnlyForInlines,
|
||||||
skipExpects = skipExpects
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user