[Wasm] Rewrite lazy initialization without by lazy and lateinit to reduce overhead

This commit is contained in:
Zalim Bashorov
2023-03-30 20:47:01 +02:00
parent 1a8a4fa65d
commit 295acdf2af
7 changed files with 42 additions and 27 deletions
@@ -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<Throwable>? = null
@@ -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 =