Adam S
05/24/2024, 9:36 AMinternal actual fun identityHashCode(any: Any?): IdentityHashCode {
if (any == null) return IdentityHashCode(0)
val dyn = any.asDynamic()
if (dyn[IDENTITY_HASH_CODE_SYMBOL] === undefined) {
dyn[IDENTITY_HASH_CODE_SYMBOL] = lastIdentityHashCodeId++
}
val hc = dyn[IDENTITY_HASH_CODE_SYMBOL].unsafeCast<Int>()
return IdentityHashCode(hc)
}
I miss dynamic in Wasm :(Svyatoslav Kuzmich [JB]
05/24/2024, 10:35 AMSvyatoslav Kuzmich [JB]
05/24/2024, 10:37 AMexternal interface IdentityHashCodeMap {
fun get(x: JsReference<Any>): Int
fun set(x: JsReference<Any>, value: Int): Unit
fun has(x: JsReference<Any>): Boolean
}
val identityHashCodes: IdentityHashCodeMap = js("new WeakMap()")
var lastIdentityHashCodeId = 0
fun identityHashCode(any: Any): Int {
val x = any.toJsReference()
if (!identityHashCodes.has(x)) {
identityHashCodes.set(x, lastIdentityHashCodeId++)
}
return identityHashCodes.get(x)
}
Adam S
05/24/2024, 5:57 PM