JS: when both clauses of if become empty during optimization, remove if entirely. Make condition and then clause of JsIf non-nullable. Fix #KT-13912

This commit is contained in:
Alexey Andreev
2016-09-27 16:34:50 +03:00
committed by Alexey Andreev
parent b5358122e2
commit d2fdc7ffc0
11 changed files with 134 additions and 24 deletions
@@ -0,0 +1,17 @@
var global = "";
function id(value) {
global += value + ";";
return value;
}
function test(x) {
id(x);
id(x + 1);
}
function box() {
test(23);
if (global != "23;24;") return "fail";
return "OK";
}
@@ -0,0 +1,23 @@
var global = "";
function id(value) {
global += value + ";";
return value;
}
function test(x) {
$outer: {
if (id(x) + id(x + 1) > 0) {
break $outer;
}
else {
break $outer;
}
}
}
function box() {
test(23);
if (global != "23;24;") return "fail";
return "OK";
}
@@ -0,0 +1,7 @@
function test(x) {
return "OK";
}
function box() {
return test(23);
}
@@ -0,0 +1,12 @@
function test(x) {
$outer: {
if (x > 10) {
break $outer;
}
}
return "OK";
}
function box() {
return test(23);
}