Issue #1289 AS1/2 direct editation - variables used in inner functions must not be stored in local registers

This commit is contained in:
Jindra Petřík
2016-10-03 20:37:55 +02:00
parent aeb246b866
commit 1db9dcab0a
9 changed files with 408 additions and 148 deletions

View File

@@ -845,4 +845,46 @@ public class ActionScript2Test extends ActionScript2TestBase {
+ "trace(\"afterSwitch\");\r\n"
);
}
public void frame63_functionVariablesTest() {
compareSrc(63, "function outfunc()\r\n"
+ "{\r\n"
+ "var _loc2_ = function()\r\n"
+ "{\r\n"
+ "var a = 5;\r\n"
+ "var _loc3_ = 6;\r\n"
+ "var _loc2_ = function()\r\n"
+ "{\r\n"
+ "var _loc1_ = a + 2;\r\n"
+ "trace(_loc1_);\r\n"
+ "return _loc1_;\r\n"
+ "};\r\n"
+ "return _loc2_();\r\n"
+ "};\r\n"
+ "return _loc2_();\r\n"
+ "}\r\n"
+ "trace(\"functionVariablesTest\");\r\n"
);
}
@Test
public void frame64_functionInnerParametersTest() {
compareSrc(64, "function outfunc()\r\n"
+ "{\r\n"
+ "var _loc2_ = function(a, x)\r\n"
+ "{\r\n"
+ "var _loc3_ = a + 3 + x;\r\n"
+ "var _loc2_ = function()\r\n"
+ "{\r\n"
+ "var _loc1_ = a + 2;\r\n"
+ "trace(_loc1_);\r\n"
+ "return _loc1_;\r\n"
+ "};\r\n"
+ "return _loc2_();\r\n"
+ "};\r\n"
+ "return _loc2_(5,2);\r\n"
+ "}\r\n"
+ "trace(\"functionInnerParametersTest\");\r\n"
);
}
}