JS/Inlining: minor improvements and clarifications after code review. Test whether expression without side effect does not prevent to relocate another expressions

This commit is contained in:
Alexey Andreev
2016-06-06 12:37:37 +03:00
parent 6b99d4e1c5
commit 07d5a4506c
10 changed files with 63 additions and 23 deletions
@@ -0,0 +1,29 @@
// CHECK_VARS_COUNT: function=box count=1
package foo
var log = ""
class A() {
var x = 23
}
fun sideEffect(): Int {
log += "sideEffect();"
return 42
}
fun bar(a: Int, b: Int) {
log += "bar($a, $b);"
}
inline fun test(a: Int, b: Int) {
bar(b, a)
}
fun box(): String {
val a = A()
test(sideEffect(), a.x)
assertEquals("sideEffect();bar(23, 42);", log)
return "OK"
}
@@ -4,18 +4,18 @@ function f(x) {
function box() {
var result1, result2, $a, $b;
if (f(true)) {
$a = "1";
}
result1 = $a;
if (result1 !== "1") return "fail1: " + result1;
if (f(false)) {
$b = "1";
}
result2 = $b;
if (result2 !== void 0) return "fail2: " + result2;
return "OK";
}