JS: fix bug in temporary variable elimination
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
+2
@@ -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()
|
||||||
}
|
}
|
||||||
Vendored
+9
@@ -0,0 +1,9 @@
|
|||||||
|
var result = "";
|
||||||
|
|
||||||
|
function box() {
|
||||||
|
var $tmp;
|
||||||
|
$tmp = result;
|
||||||
|
result += "fail";
|
||||||
|
result = $tmp + "OK";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
var result = "";
|
||||||
|
|
||||||
|
function box() {
|
||||||
|
var $tmp;
|
||||||
|
$tmp = result;
|
||||||
|
result += "fail";
|
||||||
|
result = $tmp + "OK";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user