diff --git a/compiler/testData/codegen/box/size/add.kt b/compiler/testData/codegen/box/size/add.kt index f97d9901fd9..3a160b4105d 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 66_687 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 65_583 // 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 5d20c36d3d2..a2c991f6d48 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 67_012 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 65_908 // 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 8a9da5f5e11..6963a039d00 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 78_710 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 77_603 // 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 c7b903041f3..33c8ccfbc1e 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 66_738 +// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 65_634 // WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_389 fun box() = "OK" \ No newline at end of file diff --git a/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt b/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt index c2f37400818..274f9584b03 100644 --- a/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt +++ b/libraries/kotlin.test/wasm/src/main/kotlin/kotlin/test/TeamcityAdapter.kt @@ -77,17 +77,17 @@ internal class TeamcityAdapter : FrameworkAdapter { println("##teamcity[$type name='${name.tcEscape()}' message='${errorMessage.tcEscape()}' $flowId]") } - - private lateinit var _testArguments: FrameworkTestArguments - + private var _testArguments: FrameworkTestArguments? = null private val testArguments: FrameworkTestArguments get() { - if (!::_testArguments.isInitialized) { + var value = _testArguments + if (value == null) { val arguments = d8Arguments().takeIf { it.isNotEmpty() } ?: nodeArguments() - _testArguments = FrameworkTestArguments.parse(arguments.split(' ')) + value = FrameworkTestArguments.parse(arguments.split(' ')) + _testArguments = value } - return _testArguments + return value } private fun runSuite(name: String, suiteFn: () -> Unit) { diff --git a/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt b/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt index 6452c98fcaa..54132d34d9c 100644 --- a/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt +++ b/libraries/stdlib/wasm/builtins/kotlin/Throwable.kt @@ -24,13 +24,16 @@ public open class Throwable(open val message: String?, open val cause: kotlin.Th private val jsStack: ExternalInterfaceType = captureStackTrace() - private lateinit var _stack: String + private var _stack: String? = null internal val stack: String get() { - if (!::_stack.isInitialized) { - _stack = jsToKotlinStringAdapter(jsStack).removePrefix("Error\n") + var value = _stack + if (value == null) { + value = jsToKotlinStringAdapter(jsStack).removePrefix("Error\n") + _stack = value } - return _stack + + return value } internal var suppressedExceptionsList: MutableList? = null diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ExternalWrapper.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ExternalWrapper.kt index 022407a37ba..f26cefbe3dd 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ExternalWrapper.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ExternalWrapper.kt @@ -281,28 +281,40 @@ private fun getJsTrue(): JsBoolean = private fun getJsFalse(): JsBoolean = js("false") -private lateinit var _jsEmptyString: JsString +private var _jsEmptyString: JsString? = null private val jsEmptyString: JsString get() { - if (!::_jsEmptyString.isInitialized) - _jsEmptyString = getJsEmptyString() - return _jsEmptyString + var value = _jsEmptyString + if (value == null) { + value = getJsEmptyString() + _jsEmptyString = value + } + + return value } -private lateinit var _jsTrue: JsBoolean +private var _jsTrue: JsBoolean? = null private val jsTrue: JsBoolean get() { - if (!::_jsTrue.isInitialized) - _jsTrue = getJsTrue() - return _jsTrue + var value = _jsTrue + if (value == null) { + value = getJsTrue() + _jsTrue = value + } + + return value } -private lateinit var _jsFalse: JsBoolean -private val jsFalse: JsBoolean +private var _jsFalse: JsBoolean? = null +private val jsFalse: JsBoolean get() { - if (!::_jsFalse.isInitialized) - _jsFalse = getJsFalse() - return _jsFalse + var value = _jsFalse + if (value == null) { + value = getJsFalse() + _jsFalse = value + } + + return value } internal fun numberToDoubleAdapter(x: Number): Double =