[Wasm] Pass js stack value directly when replacing a wasm exception with JS one

In this case, we don't need to convert a value to and from wasm String.
This commit is contained in:
Zalim Bashorov
2023-04-17 14:38:19 +02:00
committed by Space Team
parent 6bfd1e7e9f
commit 521a272acb
6 changed files with 11 additions and 11 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM // TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 17_726 // WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 14_217
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_104 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_579
// FILE: test.kt // FILE: test.kt
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM // TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 51_463 // WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 49_207
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_130 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_605
fun box(): String { fun box(): String {
println("Hello, World!") println("Hello, World!")
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM // TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 19_102 // WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 15_582
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_659 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_134
// FILE: test.kt // FILE: test.kt
+2 -2
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM // TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 17_768 // WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 14_259
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_976 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_451
fun box() = "OK" fun box() = "OK"
@@ -22,7 +22,7 @@ public open class Throwable(open val message: String?, open val cause: kotlin.Th
constructor() : this(null, null) constructor() : this(null, null)
private val jsStack: ExternalInterfaceType = captureStackTrace() internal val jsStack: ExternalInterfaceType = captureStackTrace()
private var _stack: String? = null private var _stack: String? = null
internal val stack: String internal val stack: String
@@ -6,7 +6,7 @@
package kotlin.wasm.internal package kotlin.wasm.internal
@Suppress("UNUSED_PARAMETER") // TODO: Remove after bootstrap update @Suppress("UNUSED_PARAMETER") // TODO: Remove after bootstrap update
private fun throwJsError(message: String?, wasmTypeName: String?, stack: String): Nothing { private fun throwJsError(message: String?, wasmTypeName: String?, stack: ExternalInterfaceType): Nothing {
js(""" js("""
const error = new Error(); const error = new Error();
error.message = message; error.message = message;
@@ -17,7 +17,7 @@ private fun throwJsError(message: String?, wasmTypeName: String?, stack: String)
} }
internal fun throwAsJsException(t: Throwable): Nothing { internal fun throwAsJsException(t: Throwable): Nothing {
throwJsError(t.message, getSimpleName(t.typeInfo), t.stack) throwJsError(t.message, getSimpleName(t.typeInfo), t.jsStack)
} }
internal var isNotFirstWasmExportCall: Boolean = false internal var isNotFirstWasmExportCall: Boolean = false