diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt index 2c4d1864e75..a006aef7f5b 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.backend.js.utils.isJsExport import org.jetbrains.kotlin.ir.backend.js.utils.findUnitGetInstanceFunction import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget import org.jetbrains.kotlin.ir.declarations.* @@ -173,6 +174,7 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis override fun visitClass(declaration: IrClass) { if (declaration.isAnnotationClass) return + if (declaration.isExternal) return val symbol = declaration.symbol diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt index d59cf3a722f..52edad3f133 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/TypeTransformer.kt @@ -90,7 +90,7 @@ class WasmTypeTransformer( val klass = this.getClass() val ic = context.backendContext.inlineClassesUtils.getInlinedClass(this) - if (klass != null && klass.hasWasmForeignAnnotation()) { + if (klass != null && (klass.hasWasmForeignAnnotation() || klass.isExternal)) { WasmExternRef } else if (ic != null) { context.backendContext.inlineClassesUtils.getInlineClassUnderlyingType(ic).toWasmValueType()