mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-28 20:44:55 +00:00
correct continue in if handling,
move continue down if possible (invert expression of if when needed)
This commit is contained in:
@@ -289,6 +289,9 @@ public class Graph {
|
||||
for (Loop l : loops) {
|
||||
if (l.phase == 1) {
|
||||
loopContinues.add(l.loopContinue);
|
||||
if (l.loopPreContinue != null) {
|
||||
loopContinues.add(l.loopPreContinue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,6 +330,9 @@ public class Graph {
|
||||
}
|
||||
}
|
||||
if (common) {
|
||||
if (loopContinues.contains(p)) {
|
||||
return null;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
}
|
||||
@@ -889,12 +895,23 @@ public class Graph {
|
||||
}
|
||||
|
||||
if ((!onTrue.isEmpty()) && (!onFalse.isEmpty())) {
|
||||
if (onFalse.get(onFalse.size() - 1) instanceof ExitItem) {
|
||||
if ((onFalse.get(onFalse.size() - 1) instanceof ExitItem) || (onFalse.get(onFalse.size() - 1) instanceof BreakItem)) {
|
||||
if (onTrue.get(onTrue.size() - 1) instanceof ContinueItem) {
|
||||
list.add(i + 1, onTrue.remove(onTrue.size() - 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (i < list.size() - 1) {
|
||||
if ((list.get(i + 1) instanceof BreakItem) && onFalse.isEmpty()) {
|
||||
if (!onTrue.isEmpty() && (onTrue.get(onTrue.size() - 1) instanceof ContinueItem)) {
|
||||
ifi.expression = ifi.expression.invert(null);
|
||||
list.addAll(i + 2, ifi.onTrue);
|
||||
ifi.onTrue.clear();
|
||||
ifi.onTrue.add(list.remove(i + 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash;
|
||||
|
||||
import com.jpexs.decompiler.flash.action.Action;
|
||||
@@ -603,13 +604,12 @@ public class ActionScript2Test extends ActionScript2TestBase {
|
||||
+ "{\r\n"
|
||||
+ "a++;\r\n"
|
||||
+ "b = b + 2;\r\n"
|
||||
+ "b = b + 2;\r\n"
|
||||
+ "if(c >= 10)\r\n"
|
||||
+ "{\r\n"
|
||||
+ "break;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(c);\r\n"
|
||||
+ "c++;\r\n"
|
||||
+ "c++;\r\n"
|
||||
+ "continue;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"konec\");\r\n"
|
||||
);
|
||||
@@ -676,13 +676,12 @@ public class ActionScript2Test extends ActionScript2TestBase {
|
||||
+ "while(true)\r\n"
|
||||
+ "{\r\n"
|
||||
+ "k++;\r\n"
|
||||
+ "k++;\r\n"
|
||||
+ "if(k >= 10)\r\n"
|
||||
+ "{\r\n"
|
||||
+ "break;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "k = k * 5;\r\n"
|
||||
+ "trace(k);\r\n"
|
||||
+ "trace(k);\r\n"
|
||||
+ "continue;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"end\");\r\n"
|
||||
);
|
||||
|
||||
@@ -147,15 +147,14 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
@DataProvider
|
||||
private Object[][] standardSwfNamesProvider() {
|
||||
return new Object[][]{
|
||||
{"standard"},
|
||||
//{"standard_asc2"}
|
||||
{"standard"}, //{"standard_asc2"}
|
||||
};
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardArguments(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testArguments", "return arguments[0];\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -174,7 +173,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"infinally\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -194,7 +193,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"ch\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -207,7 +206,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var e:TestClass2 = TestClass2.createMe(\"test\");\r\n"
|
||||
+ "e.attrib1 = e.attrib2 = e.attrib3 = this.getCounter();\r\n"
|
||||
+ "this.traceIt(e.toString());\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -215,7 +214,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
decompileMethod(swfUsed, "testComplexExpressions", "var i:int = 0;\r\n"
|
||||
+ "var j:int = 0;\r\n"
|
||||
+ "j = i = i + (i = i + i++);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -271,16 +270,15 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "continue loop1;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "if(e == 8)\r\n"
|
||||
+ "if(e != 8)\r\n"
|
||||
+ "{\r\n"
|
||||
+ "continue;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "break loop1;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"hello\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -296,7 +294,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "k = 7;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -316,7 +314,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "vnumber = 0.5;\r\n"
|
||||
+ "vnumber = 6;\r\n"
|
||||
+ "vobject = vclass;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -334,7 +332,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"4\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"after switch\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -346,7 +344,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "a++;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "while(a < 20);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -367,7 +365,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "while(k < 9);\r\n"
|
||||
+ "return 2;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -388,7 +386,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "arr[0]();\r\n"
|
||||
+ "}\r\n"
|
||||
+ "return i == 0;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -410,7 +408,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "return \"hu\" + str;\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -419,7 +417,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"a=\" + a);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -444,7 +442,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"D\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -457,7 +455,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"hello:\" + a);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -485,7 +483,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"part5\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -500,7 +498,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"item #\" + item);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -517,7 +515,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"item #\" + test[0]);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -531,7 +529,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"item #\" + this.testPriv);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -556,7 +554,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"C\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"exit\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -571,7 +569,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(item);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -604,7 +602,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"C\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -636,7 +634,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"after\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "return 89;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -660,7 +658,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"E\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "return 5;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -687,7 +685,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"C\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"return\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -708,7 +706,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"return\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -732,7 +730,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "j++;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -757,7 +755,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"D\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"finish\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -786,13 +784,13 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"before loop end\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardHello(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testHello", "trace(\"hello\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -802,7 +800,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"onTrue\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -816,7 +814,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"onFalse\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -840,7 +838,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"C\");\r\n"
|
||||
+ "return 7;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -853,7 +851,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "b++;\r\n"
|
||||
+ "var c:* = 1;\r\n"
|
||||
+ "b = c++;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -892,7 +890,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "chars[index++] = 5;\r\n"
|
||||
+ "trace(\"arr[++e]\");\r\n"
|
||||
+ "chars[++index] = 5;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -914,7 +912,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "return first;\r\n"
|
||||
+ "};\r\n"
|
||||
+ "traceParameter(\"hello\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -930,7 +928,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "s = 8;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "innerFunc(a);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -957,7 +955,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"b!=7\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"end\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -982,7 +980,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"finally block\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -996,14 +994,14 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "b = true;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "b = (i == 0 || i == 1) && j == 0;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardManualConvert(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testManualConvert", "trace(\"String(this).length\");\r\n"
|
||||
+ "trace(String(this).length);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1020,7 +1018,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "default:\r\n"
|
||||
+ "jj = 3;\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1036,7 +1034,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"onFalse\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1045,7 +1043,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "return (param1 as TestClass2).attrib1 == 5;\r\n"
|
||||
+ "};\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1056,19 +1054,19 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var b:* = ns::[name];\r\n"
|
||||
+ "trace(b.c);\r\n"
|
||||
+ "var c:* = myInternal::neco;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardParamNames(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testParamNames", "return firstp + secondp + thirdp;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardParamsCount(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testParamsCount", "return firstp;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1085,7 +1083,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "a = 1 * 2 * 3;\r\n"
|
||||
+ "a = 1 * 2 / 3;\r\n"
|
||||
+ "trace(\"a=\" + a);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1095,7 +1093,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var c:* = 3;\r\n"
|
||||
+ "var d:* = a << (b >>> c);\r\n"
|
||||
+ "var e:* = a << b >>> c;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1106,7 +1104,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "d.method(d.attrib * 5);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1115,14 +1113,14 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var a2:* = /[a-z\\r\\n0-9\\\\]+/i;\r\n"
|
||||
+ "var b1:* = /[0-9AB]+/;\r\n"
|
||||
+ "var b2:* = /[0-9AB]+/;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardRest(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testRest", "trace(\"firstRest:\" + restval[0]);\r\n"
|
||||
+ "return firstp;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1132,7 +1130,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(\"is eight\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1141,7 +1139,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "this.traceIt(\"hello\" + 5 * 6);\r\n"
|
||||
+ "this.traceIt(\"hello\" + (k - 1));\r\n"
|
||||
+ "this.traceIt(\"hello\" + 5 + 6);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1151,7 +1149,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"backslash: \\\\ \");\r\n"
|
||||
+ "trace(\"single quotes: \\'hello!\\'\");\r\n"
|
||||
+ "trace(\"new line \\r\\n hello!\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1170,7 +1168,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "case 89:\r\n"
|
||||
+ "trace(\"eightynine\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1187,7 +1185,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "case TestSwitchComma.X, \"C\":\r\n"
|
||||
+ "trace(\"is C\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1209,7 +1207,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "default:\r\n"
|
||||
+ "trace(\"default clause\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1220,7 +1218,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var d:* = 78;\r\n"
|
||||
+ "var e:* = a == b?c == d?1:7:3;\r\n"
|
||||
+ "trace(\"e=\" + e);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1245,7 +1243,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"Finally part\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"end\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1273,7 +1271,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "}\r\n"
|
||||
+ "return 4;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1316,7 +1314,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"after\");\r\n"
|
||||
+ "return \"X\";\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1350,7 +1348,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"after\");\r\n"
|
||||
+ "return \"X\";\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1361,14 +1359,14 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "var a:int = 5;\r\n"
|
||||
+ "v[a * 8 - 39] = \"hi2\";\r\n"
|
||||
+ "trace(v[0]);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
public void testStandardVector2(String swfUsed) {
|
||||
decompileMethod(swfUsed, "testVector2", "var a:Vector.<Vector.<int>> = new Vector.<Vector.<int>>();\r\n"
|
||||
+ "var b:Vector.<int> = new <int>[10,20,30];\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1382,7 +1380,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "a = 7;\r\n"
|
||||
+ "b = 9;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1404,7 +1402,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "trace(\"hello2\");\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1427,7 +1425,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "continue;\r\n"
|
||||
+ "}\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1453,7 +1451,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "trace(\"after_try\");\r\n"
|
||||
+ "}\r\n"
|
||||
+ "trace(\"end\");\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "standardSwfNamesProvider")
|
||||
@@ -1569,20 +1567,20 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "]]>\r\n"
|
||||
+ "</script>;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssembledDoubleDup() {
|
||||
decompileMethod("assembled", "testDoubleDup", "var _loc10_:Rectangle = myprop(_loc5_);\r\n"
|
||||
+ "_loc10_.mymethod(-_loc10_.width,-_loc10_.height);\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssembledDup() {
|
||||
decompileMethod("assembled", "testDup", "return 1 - (var _loc1_:Number = 1 - _loc1_ / _loc4_) * _loc1_;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1593,7 +1591,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "trace(_loc2_);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1609,7 +1607,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "}\r\n"
|
||||
+ "}\r\n"
|
||||
+ "_loc3_ = 0;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1618,14 +1616,14 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "_loc6_.methodname(_loc1_,_loc2_,_loc5_);\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssembledIncrement() {
|
||||
decompileMethod("assembled", "testIncrement", "super();\r\n"
|
||||
+ "b = a++;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1634,13 +1632,13 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "{\r\n"
|
||||
+ "somemethod();\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssembledIncrement3() {
|
||||
decompileMethod("assembled", "testIncrement3", "_loc1_.length--;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1648,13 +1646,13 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
decompileMethod("assembled", "testSetSlotDup", "var _loc5_:int = 5;\r\n"
|
||||
+ "myname.somemethod(\"okay\",myslot = _loc5_);\r\n"
|
||||
+ "myname.start();\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssembledSetSlotFindProperty() {
|
||||
decompileMethod("assembled", "testSetSlotFindProperty", "return var myprop:int = 50;\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1675,7 +1673,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "_loc2_ = \"C\";\r\n"
|
||||
+ "}\r\n"
|
||||
+ "_loc2_ = \"after\";\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1698,7 +1696,7 @@ public class ActionScript3Test extends ActionScriptTestBase {
|
||||
+ "default:\r\n"
|
||||
+ "_loc2_ = 100;\r\n"
|
||||
+ "}\r\n",
|
||||
false);
|
||||
false);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Binary file not shown.
@@ -12,7 +12,6 @@
|
||||
<movie minorVersion="0" />
|
||||
<movie platform="Flash Player" />
|
||||
<movie background="#FFFFFF" />
|
||||
<movie preferredSDK="AIR 33.1.1;33.1.1;" />
|
||||
</output>
|
||||
<!-- Other classes to be compiled into your SWF -->
|
||||
<classpaths>
|
||||
@@ -28,7 +27,7 @@
|
||||
<option inline="False" />
|
||||
<option locale="" />
|
||||
<option loadConfig="" />
|
||||
<option optimize="True" />
|
||||
<option optimize="False" />
|
||||
<option omitTraces="False" />
|
||||
<option showActionScriptWarnings="True" />
|
||||
<option showBindingWarnings="True" />
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
<!--Any modifications you make may be lost.-->
|
||||
<flex-config>
|
||||
<target-player>25.0</target-player>
|
||||
<benchmark>false</benchmark>
|
||||
<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>
|
||||
<compiler>
|
||||
<define append="true">
|
||||
<name>CONFIG::debug</name>
|
||||
|
||||
Reference in New Issue
Block a user