[JS IR] Add test on initialization calling only once
This commit is contained in:
+1
-2
@@ -284,8 +284,7 @@ private fun <T> IrDeclaration.withPersistentSafe(transform: IrDeclaration.() ->
|
||||
} else null
|
||||
|
||||
private fun IrDeclaration.isCompatibleDeclaration(context: JsIrBackendContext) =
|
||||
(this as? IrField)
|
||||
?.correspondingProperty
|
||||
correspondingProperty
|
||||
?.hasAnnotation(context.intrinsics.jsEagerInitializationAnnotationSymbol) != true &&
|
||||
withPersistentSafe { origin in compatibleOrigins } == true
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JS_IR
|
||||
// DONT_TARGET_EXACT_BACKEND: WASM
|
||||
// PROPERTY_LAZY_INITIALIZATION
|
||||
|
||||
// FILE: lib.kt
|
||||
var z1 = false
|
||||
|
||||
// FILE: lib2.kt
|
||||
|
||||
@OptIn(kotlin.ExperimentalStdlibApi::class)
|
||||
@JsEagerInitialization
|
||||
val x = run { z1 = !z1; 42 }
|
||||
|
||||
val y = run { 73 }
|
||||
|
||||
fun box(): String {
|
||||
return if (z1) "OK" else "fail"
|
||||
}
|
||||
Reference in New Issue
Block a user