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 temporary += name
} }
} }
else {
super.visitExpressionStatement(x)
}
return return
} }
super.visitExpressionStatement(x) super.visitExpressionStatement(x)
@@ -40,4 +40,6 @@ class TemporaryVariableEliminationTest : BasicOptimizerTest("temporary-variable"
@Test fun innerExpressionProcessed() = box() @Test fun innerExpressionProcessed() = box()
@Test fun transitiveNotConsideredTrivial() = 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;
}