[Wasm] Don't use by lazy to keep some JS values used by adapters

This commit is contained in:
Zalim Bashorov
2023-03-28 02:07:39 +02:00
parent 494403c4bb
commit a9b553f16e
5 changed files with 31 additions and 11 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 137_837
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_629
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 132_428
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_517
// FILE: test.kt
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 138_169
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_570
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 132_749
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_458
fun box(): String {
println("Hello, World!")
+2 -2
View File
@@ -1,7 +1,7 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 140_726
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 7_068
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 135_298
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_956
// FILE: test.kt
+2 -2
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 137_888
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_501
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 132_479
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_389
fun box() = "OK"
@@ -281,9 +281,29 @@ private fun getJsTrue(): JsBoolean =
private fun getJsFalse(): JsBoolean =
js("false")
private val jsEmptyString by lazy(::getJsEmptyString)
private val jsTrue by lazy(::getJsTrue)
private val jsFalse by lazy(::getJsFalse)
private lateinit var _jsEmptyString: JsString
private val jsEmptyString: JsString
get() {
if (!::_jsEmptyString.isInitialized)
_jsEmptyString = getJsEmptyString()
return _jsEmptyString
}
private lateinit var _jsTrue: JsBoolean
private val jsTrue: JsBoolean
get() {
if (!::_jsTrue.isInitialized)
_jsTrue = getJsTrue()
return _jsTrue
}
private lateinit var _jsFalse: JsBoolean
private val jsFalse: JsBoolean
get() {
if (!::_jsFalse.isInitialized)
_jsFalse = getJsFalse()
return _jsFalse
}
internal fun numberToDoubleAdapter(x: Number): Double =
x.toDouble()