blob: 19e7ac97a018bd7e20a31e4dae8359ac3d90247c [file]
// TARGET_BACKEND: JS_IR
// ISSUE: KT-90470
// IGNORE_KLIB_RUNTIME_ERRORS_WITH_CUSTOM_FIRST_STAGE: JS:2.0,2.1,2.2,2.3,2.4
// KT-90470: Fixed in 2.5.20
fun <T> assertEquals(a: T, b: T) {
require(a == b) { "Assertion failed: $a != $b" }
}
fun foo() {
val o: dynamic = js("({ n: 5 })")
if (o.n is Int) o.n++
assertEquals(6, o.n as Int)
}
fun bar() {
val o: dynamic = js("({ n: 5 })")
++o.n
assertEquals(6, o.n as Int)
o.n++
assertEquals(7, o.n as Int)
}
fun baz() {
val o: dynamic = js("({ n: 5 })")
o.n++
assertEquals(6, o.n as Int)
o.n++
assertEquals(7, o.n as Int)
}
fun box() = "OK".also {
foo()
bar()
baz()
}