Piotr Krzemiński
11/14/2024, 2:09 PMbashor
11/14/2024, 6:40 PMbashor
11/14/2024, 6:41 PMfun setStackTraceLimit() = js("Error.stackTraceLimit = Infinity")
bashor
11/14/2024, 6:44 PMfun <T : JsAny> jsCatch(
throwException: (e: JsAny?) -> Unit =
{ e -> throw e?.toThrowableOrNull() ?: Exception("JS: " + e.toString()) },
f: () -> T
): T = js("{ try { return f(); } catch (e) { throwException(e); } }")
and wrap failing code like here:
fun test() = runTest {
jsCatch {
throwsJsException()
}
}
Piotr Krzemiński
11/15/2024, 7:48 AMfun jsCatch(
f: () -> Unit,
): Nothing = js("{ try { return f(); } catch (e) { console.log(e); } }")
) I found out why this test failsPiotr Krzemiński
11/15/2024, 7:49 AMTypeError: _this.contains is not a function
at it.krzeminski.snakeyaml.engine.kmp.internal.contains_$external_fun (file:///Users/piotr/snakeyaml-engine-kmp/build/js/packages/snakeyaml-engine-kmp-wasm-js-test/kotlin/snakeyaml-engine-kmp-wasm-js-test.uninstantiated.mjs:4069:101)
at <it.krzeminski:snakeyaml-engine-kmp_test>.it.krzeminski.snakeyaml.engine.kmp.internal.identityHashCode (<wasm://wasm/><it.krzeminski:snakeyaml-engine-kmp_test>-016924e6:wasm-function[16416]:0x192c24)
at <it.krzeminski:snakeyaml-engine-kmp_test>.it.krzeminski.snakeyaml.engine.kmp.serializer.IdentitySet.add (<wasm://wasm/><it.krzeminski:snakeyaml-engine-kmp_test>-016924e6:wasm-function[16281]:0x1913d9)
at <it.krzeminski:snakeyaml-engine-kmp_test>.it.krzeminski.snakeyaml.engine.kmp.serializer.IdentitySetTest$<init>$lambda$slambda$lambda.invoke (<wasm://wasm/><it.krzeminski:snakeyaml-engine-kmp_test>-016924e6:wasm-function[26212]:0x237051)
at <it.krzeminski:snakeyaml-engine-kmp_test>.it.krzeminski.snakeyaml.engine.kmp.serializer.IdentitySetTest$<init>$lambda$slambda$lambda.invoke (<wasm://wasm/><it.krzeminski:snakeyaml-engine-kmp_test>-016924e6:wasm-function[26213]:0x23707c)
Piotr Krzemiński
11/15/2024, 7:55 AMWeakMap
doesn't have a contains
method, but it does have `has`: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/has. So it looks like an issue with our code, I'll investigate further, thanks!