[WasmJs] Add support for external class reflection

Fix #KT-64890
This commit is contained in:
Igor Yakovlev
2024-01-26 21:16:29 +01:00
parent e302420197
commit 6930fc8fed
24 changed files with 330 additions and 81 deletions
@@ -0,0 +1,25 @@
// TARGET_BACKEND: WASM
// FILE: findAssociatedExternalObject.js
const JS_OBJECT = {}
// FILE: findAssociatedExternalObject.kt
import kotlin.reflect.*
@OptIn(ExperimentalAssociatedObjects::class)
@AssociatedObjectKey
@Retention(AnnotationRetention.BINARY)
annotation class Associated(val kClass: KClass<*>)
external object JS_OBJECT
@Associated(JS_OBJECT::class)
class ObjectKey
@OptIn(ExperimentalAssociatedObjects::class)
fun box(): String {
if (ObjectKey::class.findAssociatedObject<Associated>() !== JS_OBJECT) return "FAIL2"
return "OK"
}