[Wasm] Rewrite lazy initialization without by lazy and lateinit to reduce overhead
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
// TARGET_BACKEND: WASM
|
// 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
|
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_517
|
||||||
|
|
||||||
// FILE: test.kt
|
// FILE: test.kt
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
// TARGET_BACKEND: WASM
|
// 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
|
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_458
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
// TARGET_BACKEND: WASM
|
// 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
|
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_956
|
||||||
|
|
||||||
// FILE: test.kt
|
// FILE: test.kt
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
// TARGET_BACKEND: WASM
|
// 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
|
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_389
|
||||||
|
|
||||||
fun box() = "OK"
|
fun box() = "OK"
|
||||||
@@ -77,17 +77,17 @@ internal class TeamcityAdapter : FrameworkAdapter {
|
|||||||
println("##teamcity[$type name='${name.tcEscape()}' message='${errorMessage.tcEscape()}' $flowId]")
|
println("##teamcity[$type name='${name.tcEscape()}' message='${errorMessage.tcEscape()}' $flowId]")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var _testArguments: FrameworkTestArguments? = null
|
||||||
private lateinit var _testArguments: FrameworkTestArguments
|
|
||||||
|
|
||||||
private val testArguments: FrameworkTestArguments
|
private val testArguments: FrameworkTestArguments
|
||||||
get() {
|
get() {
|
||||||
if (!::_testArguments.isInitialized) {
|
var value = _testArguments
|
||||||
|
if (value == null) {
|
||||||
val arguments = d8Arguments().takeIf { it.isNotEmpty() } ?: nodeArguments()
|
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) {
|
private fun runSuite(name: String, suiteFn: () -> Unit) {
|
||||||
|
|||||||
@@ -24,13 +24,16 @@ public open class Throwable(open val message: String?, open val cause: kotlin.Th
|
|||||||
|
|
||||||
private val jsStack: ExternalInterfaceType = captureStackTrace()
|
private val jsStack: ExternalInterfaceType = captureStackTrace()
|
||||||
|
|
||||||
private lateinit var _stack: String
|
private var _stack: String? = null
|
||||||
internal val stack: String
|
internal val stack: String
|
||||||
get() {
|
get() {
|
||||||
if (!::_stack.isInitialized) {
|
var value = _stack
|
||||||
_stack = jsToKotlinStringAdapter(jsStack).removePrefix("Error\n")
|
if (value == null) {
|
||||||
|
value = jsToKotlinStringAdapter(jsStack).removePrefix("Error\n")
|
||||||
|
_stack = value
|
||||||
}
|
}
|
||||||
return _stack
|
|
||||||
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
internal var suppressedExceptionsList: MutableList<Throwable>? = null
|
internal var suppressedExceptionsList: MutableList<Throwable>? = null
|
||||||
|
|||||||
@@ -281,28 +281,40 @@ private fun getJsTrue(): JsBoolean =
|
|||||||
private fun getJsFalse(): JsBoolean =
|
private fun getJsFalse(): JsBoolean =
|
||||||
js("false")
|
js("false")
|
||||||
|
|
||||||
private lateinit var _jsEmptyString: JsString
|
private var _jsEmptyString: JsString? = null
|
||||||
private val jsEmptyString: JsString
|
private val jsEmptyString: JsString
|
||||||
get() {
|
get() {
|
||||||
if (!::_jsEmptyString.isInitialized)
|
var value = _jsEmptyString
|
||||||
_jsEmptyString = getJsEmptyString()
|
if (value == null) {
|
||||||
return _jsEmptyString
|
value = getJsEmptyString()
|
||||||
|
_jsEmptyString = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
private lateinit var _jsTrue: JsBoolean
|
private var _jsTrue: JsBoolean? = null
|
||||||
private val jsTrue: JsBoolean
|
private val jsTrue: JsBoolean
|
||||||
get() {
|
get() {
|
||||||
if (!::_jsTrue.isInitialized)
|
var value = _jsTrue
|
||||||
_jsTrue = getJsTrue()
|
if (value == null) {
|
||||||
return _jsTrue
|
value = getJsTrue()
|
||||||
|
_jsTrue = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
private lateinit var _jsFalse: JsBoolean
|
private var _jsFalse: JsBoolean? = null
|
||||||
private val jsFalse: JsBoolean
|
private val jsFalse: JsBoolean
|
||||||
get() {
|
get() {
|
||||||
if (!::_jsFalse.isInitialized)
|
var value = _jsFalse
|
||||||
_jsFalse = getJsFalse()
|
if (value == null) {
|
||||||
return _jsFalse
|
value = getJsFalse()
|
||||||
|
_jsFalse = value
|
||||||
|
}
|
||||||
|
|
||||||
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun numberToDoubleAdapter(x: Number): Double =
|
internal fun numberToDoubleAdapter(x: Number): Double =
|
||||||
|
|||||||
Reference in New Issue
Block a user