[JS IR] Materialize all JsCompositeBlock
^KT-60667 Fixed
This commit is contained in:
committed by
Space Team
parent
cd840997b1
commit
d0e4515ec1
@@ -0,0 +1,62 @@
|
||||
inline fun inlineFunction(x: Int) {}
|
||||
|
||||
var OK : Any? = null
|
||||
val flag1 = 1
|
||||
val flag2 = 2
|
||||
|
||||
fun check() = true
|
||||
|
||||
fun sep(comment: String) {}
|
||||
|
||||
fun setOK(): Int {
|
||||
OK = "OK"
|
||||
return 1
|
||||
}
|
||||
|
||||
// EXPECT_GENERATED_JS: function=box expect=inlineEmptyFunctionTest.js
|
||||
fun box(): String {
|
||||
sep("Simple call")
|
||||
inlineFunction(1)
|
||||
inlineFunction(setOK())
|
||||
|
||||
sep("Call in if")
|
||||
if (flag1 != 0) {
|
||||
if (OK == "OK" && flag1 == 1 && flag2 is Int && check()) {
|
||||
inlineFunction(2)
|
||||
}
|
||||
}
|
||||
|
||||
sep("Call in else")
|
||||
if (flag1 != 0) {
|
||||
if (OK == "OK" && flag1 == 1 && flag2 is Int && check()) {
|
||||
check() // non inline call
|
||||
check() // non inline call
|
||||
} else {
|
||||
inlineFunction(3)
|
||||
}
|
||||
}
|
||||
|
||||
sep("Call in while")
|
||||
while (OK != "OK") {
|
||||
inlineFunction(4)
|
||||
}
|
||||
|
||||
sep("Call in when")
|
||||
when (OK) {
|
||||
is String -> inlineFunction(5)
|
||||
is Number -> inlineFunction(6)
|
||||
else -> inlineFunction(7)
|
||||
}
|
||||
|
||||
sep("Call in try/catch/finally")
|
||||
try {
|
||||
inlineFunction(8)
|
||||
} catch (e: Exception) {
|
||||
inlineFunction(9)
|
||||
} finally {
|
||||
inlineFunction(10)
|
||||
}
|
||||
|
||||
sep("End")
|
||||
return OK as String
|
||||
}
|
||||
Reference in New Issue
Block a user