Files
kotlin-fork/js/js.translator/testData/box/jsAstOptimizations/inlineEmptyFunction.kt
T
Alexander Korepanov d0e4515ec1 [JS IR] Materialize all JsCompositeBlock
^KT-60667 Fixed
2023-08-01 12:22:17 +00:00

63 lines
1.2 KiB
Kotlin
Vendored

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
}