From 1a8a4fa65d7eb900e8165a2ad80c8697d7e2d3cd Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 30 Mar 2023 20:42:15 +0200 Subject: [PATCH] [Wasm] Don't use `by lazy` inside Throwable --- compiler/testData/codegen/box/size/add.kt | 2 +- compiler/testData/codegen/box/size/helloWorld.kt | 2 +- compiler/testData/codegen/box/size/helloWorldDOM.kt | 2 +- compiler/testData/codegen/box/size/ok.kt | 2 +- libraries/stdlib/wasm/builtins/kotlin/Throwable.kt | 11 ++++++++--- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/compiler/testData/codegen/box/size/add.kt b/compiler/testData/codegen/box/size/add.kt index db2aa0bcba6..f97d9901fd9 100644 --- a/compiler/testData/codegen/box/size/add.kt +++ b/compiler/testData/codegen/box/size/add.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: WASM -// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 72_224 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 66_687 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_517 // FILE: test.kt diff --git a/compiler/testData/codegen/box/size/helloWorld.kt b/compiler/testData/codegen/box/size/helloWorld.kt index c6a5404ad37..5d20c36d3d2 100644 --- a/compiler/testData/codegen/box/size/helloWorld.kt +++ b/compiler/testData/codegen/box/size/helloWorld.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: WASM -// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 72_549 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 67_012 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_458 fun box(): String { diff --git a/compiler/testData/codegen/box/size/helloWorldDOM.kt b/compiler/testData/codegen/box/size/helloWorldDOM.kt index 3bd39cbd6c4..8a9da5f5e11 100644 --- a/compiler/testData/codegen/box/size/helloWorldDOM.kt +++ b/compiler/testData/codegen/box/size/helloWorldDOM.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: WASM -// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 84_364 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 78_710 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_956 // FILE: test.kt diff --git a/compiler/testData/codegen/box/size/ok.kt b/compiler/testData/codegen/box/size/ok.kt index 9527bbb73bc..c7b903041f3 100644 --- a/compiler/testData/codegen/box/size/ok.kt +++ b/compiler/testData/codegen/box/size/ok.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: WASM -// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 72_275 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 66_738 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_389 fun box() = "OK" \ No newline at end of file diff --git a/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt b/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt index de4ad4cc327..6452c98fcaa 100644 --- a/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt +++ b/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt @@ -24,9 +24,14 @@ public open class Throwable(open val message: String?, open val cause: kotlin.Th private val jsStack: ExternalInterfaceType = captureStackTrace() - internal val stack: String by lazy { - jsToKotlinStringAdapter(jsStack).removePrefix("Error\n") - } + private lateinit var _stack: String + internal val stack: String + get() { + if (!::_stack.isInitialized) { + _stack = jsToKotlinStringAdapter(jsStack).removePrefix("Error\n") + } + return _stack + } internal var suppressedExceptionsList: MutableList? = null