JS/Inlining: improve test for removal of binary expresions without side effect, add tests for removal of a reference to a function parameter
This commit is contained in:
+2
@@ -26,4 +26,6 @@ class IneffectiveStatementEliminationTest() : BasicOptimizerTest("ineffective-st
|
||||
@Test fun conditional() = box()
|
||||
|
||||
@Test fun literal() = box()
|
||||
|
||||
@Test fun parameters() = box()
|
||||
}
|
||||
|
||||
Vendored
+10
-7
@@ -10,13 +10,16 @@ function se2(value) {
|
||||
}
|
||||
|
||||
function test1() {
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se(); se(); se();
|
||||
se(); se(); se();
|
||||
se("a1"); se("a2"); se("a3"); se("a4");
|
||||
se("b1"); se("b2"); se("b3");
|
||||
se("c1"); se("c2");
|
||||
se("d1"); se("d2");
|
||||
se("e1"); se("e2");
|
||||
se("f1"); se("f2"); se("f3"); se("f4");
|
||||
se("g1_1"); se("g1_2"); se("g2_1"); se("g2_2");
|
||||
se("g3_1"); se("g3_2"); se("g4_1"); se("g4_2");
|
||||
se("h1_1"); se("h1_2"); se("h2_1"); se("h2_2");
|
||||
se("h3_1"); se("h3_2"); se("h4_1"); se("h4_2");
|
||||
}
|
||||
|
||||
function test2() {
|
||||
|
||||
Vendored
+14
-14
@@ -10,20 +10,20 @@ function se2(value) {
|
||||
}
|
||||
|
||||
function test1() {
|
||||
var $a = (se() - se() + se()) * se();
|
||||
var $b = se() % se() / se();
|
||||
var $c = se() >> se();
|
||||
var $d = se() << se();
|
||||
var $e = se() >>> se();
|
||||
var $f = se() | se() & se() ^ se();
|
||||
var $g1 = se() == se();
|
||||
var $g2 = se() === se();
|
||||
var $g3 = se() != se();
|
||||
var $g4 = se() !== se();
|
||||
var $h1 = se() > se();
|
||||
var $h2 = se() >= se();
|
||||
var $h3 = se() < se();
|
||||
var $h4 = se() <= se();
|
||||
var $a = (se("a1") - se("a2") + se("a3")) * se("a4");
|
||||
var $b = se("b1") % se("b2") / se("b3");
|
||||
var $c = se("c1") >> se("c2");
|
||||
var $d = se("d1") << se("d2");
|
||||
var $e = se("e1") >>> se("e2");
|
||||
var $f = se("f1") | se("f2") & se("f3") ^ se("f4");
|
||||
var $g1 = se("g1_1") == se("g1_2");
|
||||
var $g2 = se("g2_1") === se("g2_2");
|
||||
var $g3 = se("g3_1") != se("g3_2");
|
||||
var $g4 = se("g4_1") !== se("g4_2");
|
||||
var $h1 = se("h1_1") > se("h1_2");
|
||||
var $h2 = se("h2_1") >= se("h2_2");
|
||||
var $h3 = se("h3_1") < se("h3_2");
|
||||
var $h4 = se("h4_1") <= se("h4_2");
|
||||
}
|
||||
|
||||
function test2() {
|
||||
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
var log = "";
|
||||
|
||||
function se(x) {
|
||||
log += x;
|
||||
return x;
|
||||
}
|
||||
|
||||
function test(param) {
|
||||
se("test:" + param);
|
||||
}
|
||||
|
||||
function box() {
|
||||
test(23);
|
||||
if (log != "test:23") return "fail: " + log;
|
||||
return "OK";
|
||||
}
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
var log = "";
|
||||
|
||||
function se(x) {
|
||||
log += x;
|
||||
return x;
|
||||
}
|
||||
|
||||
function test(param) {
|
||||
var $tmp = param + se("test:" + param);
|
||||
}
|
||||
|
||||
function box() {
|
||||
test(23);
|
||||
if (log != "test:23") return "fail: " + log;
|
||||
return "OK";
|
||||
}
|
||||
Reference in New Issue
Block a user