From cafc27aae9434d0d3cfec020f08aba67507740b4 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Mon, 20 Mar 2023 17:29:29 +0100 Subject: [PATCH] [Wasm] Add JsAny.unsafeCast Replacement for Dynamic.unsafeCast, but limited to JsAny types where it makes sense. --- libraries/stdlib/wasm/src/kotlin/js/JsAny.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/wasm/src/kotlin/js/JsAny.kt b/libraries/stdlib/wasm/src/kotlin/js/JsAny.kt index 748c8d5f3f0..5e0b2758b6d 100644 --- a/libraries/stdlib/wasm/src/kotlin/js/JsAny.kt +++ b/libraries/stdlib/wasm/src/kotlin/js/JsAny.kt @@ -5,7 +5,19 @@ package kotlin.js +import kotlin.wasm.internal.ExcludedFromCodegen +import kotlin.wasm.internal.WasmNoOpCast +import kotlin.wasm.internal.implementedAsIntrinsic + /** * Any JavaScript value except null or undefined */ -public external interface JsAny \ No newline at end of file +public external interface JsAny + +/** + * Cast JsAny to other Js type without runtime check + */ +@WasmNoOpCast +@ExcludedFromCodegen +public fun JsAny.unsafeCast(): T = + implementedAsIntrinsic \ No newline at end of file