[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
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
function box() {
|
||||
sep('Simple call');
|
||||
// Inline function 'inlineFunction' call
|
||||
// Inline function 'inlineFunction' call
|
||||
setOK();
|
||||
sep('Call in if');
|
||||
if (!(flag1 === 0)) {
|
||||
var tmp;
|
||||
var tmp_0;
|
||||
if (equals(OK, 'OK') ? flag1 === 1 : false) {
|
||||
var tmp_1 = flag2;
|
||||
tmp_0 = typeof tmp_1 === 'number';
|
||||
} else {
|
||||
tmp_0 = false;
|
||||
}
|
||||
if (tmp_0) {
|
||||
tmp = check_1();
|
||||
} else {
|
||||
tmp = false;
|
||||
}
|
||||
if (tmp) {
|
||||
// Inline function 'inlineFunction' call
|
||||
}
|
||||
}
|
||||
sep('Call in else');
|
||||
if (!(flag1 === 0)) {
|
||||
var tmp_2;
|
||||
var tmp_3;
|
||||
if (equals(OK, 'OK') ? flag1 === 1 : false) {
|
||||
var tmp_4 = flag2;
|
||||
tmp_3 = typeof tmp_4 === 'number';
|
||||
} else {
|
||||
tmp_3 = false;
|
||||
}
|
||||
if (tmp_3) {
|
||||
tmp_2 = check_1();
|
||||
} else {
|
||||
tmp_2 = false;
|
||||
}
|
||||
if (tmp_2) {
|
||||
check_1();
|
||||
check_1();
|
||||
} else {
|
||||
// Inline function 'inlineFunction' call
|
||||
}
|
||||
}
|
||||
sep('Call in while');
|
||||
while (!equals(OK, 'OK')) {
|
||||
// Inline function 'inlineFunction' call
|
||||
}
|
||||
sep('Call in when');
|
||||
var tmp0_subject = OK;
|
||||
if (!(tmp0_subject == null) ? typeof tmp0_subject === 'string' : false) {
|
||||
// Inline function 'inlineFunction' call
|
||||
} else {
|
||||
if (isNumber(tmp0_subject)) {
|
||||
// Inline function 'inlineFunction' call
|
||||
}
|
||||
}
|
||||
sep('Call in try/catch/finally');
|
||||
try {
|
||||
// Inline function 'inlineFunction' call
|
||||
} catch ($p) {
|
||||
if ($p instanceof Exception) {
|
||||
var e = $p;
|
||||
// Inline function 'inlineFunction' call
|
||||
} else {
|
||||
throw $p;
|
||||
}
|
||||
}
|
||||
finally {
|
||||
// Inline function 'inlineFunction' call
|
||||
}
|
||||
sep('End');
|
||||
var tmp_5 = OK;
|
||||
return (!(tmp_5 == null) ? typeof tmp_5 === 'string' : false) ? tmp_5 : THROW_CCE();
|
||||
}
|
||||
Reference in New Issue
Block a user