JS: fix bug in temporary variable elimination

This commit is contained in:
Alexey Andreev
2016-11-21 18:45:50 +03:00
parent dc8e90809c
commit be196789d2
4 changed files with 23 additions and 0 deletions
@@ -130,6 +130,9 @@ internal class TemporaryVariableElimination(private val function: JsFunction) {
temporary += name
}
}
else {
super.visitExpressionStatement(x)
}
return
}
super.visitExpressionStatement(x)
@@ -40,4 +40,6 @@ class TemporaryVariableEliminationTest : BasicOptimizerTest("temporary-variable"
@Test fun innerExpressionProcessed() = box()
@Test fun transitiveNotConsideredTrivial() = box()
@Test fun assignmentToNonLocal() = box()
}
@@ -0,0 +1,9 @@
var result = "";
function box() {
var $tmp;
$tmp = result;
result += "fail";
result = $tmp + "OK";
return result;
}
@@ -0,0 +1,9 @@
var result = "";
function box() {
var $tmp;
$tmp = result;
result += "fail";
result = $tmp + "OK";
return result;
}