diff --git a/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java b/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java index d859e1c44..ab49cebee 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java @@ -53,7 +53,7 @@ public class UniversalLoopItem extends LoopItem implements Block { if (labelUsed) { writer.append("loop" + loop.id + ":").newLine(); } - writer.append("while").startBlock(); + writer.append("while"); if (writer.getFormatting().spaceBeforeParenthesesWhileParentheses) { writer.append(" "); } diff --git a/trunk/test/com/jpexs/decompiler/flash/ActionScript2Test.java b/trunk/test/com/jpexs/decompiler/flash/ActionScript2Test.java index d4b31d4b9..4431b6e8e 100644 --- a/trunk/test/com/jpexs/decompiler/flash/ActionScript2Test.java +++ b/trunk/test/com/jpexs/decompiler/flash/ActionScript2Test.java @@ -83,14 +83,15 @@ public class ActionScript2Test extends ActionStript2TestBase { @Test public void frame1_unicodeTest() { compareSrc(1, "trace(\"unicodeTest\");\r\n" - + "var k=\"היפופוטמי, או א\";\r\n" - + "trace(k);\r\n"); + + "var k = \"היפופוטמי, או א\";\r\n" + + "trace(k);\r\n" + ); } @Test public void frame2_ifWithElseTest() { compareSrc(2, "trace(\"ifWithElseTest\");\r\n" - + "var i=5;\r\n" + + "var i = 5;\r\n" + "if(i == 258)\r\n" + "{\r\n" + "trace(\"onTrue\");\r\n" @@ -98,35 +99,38 @@ public class ActionScript2Test extends ActionStript2TestBase { + "else\r\n" + "{\r\n" + "trace(\"onFalse\" + i);\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame3_forTest() { compareSrc(3, "trace(\"forTest\");\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "while(i < 10)\r\n" + "{\r\n" + "trace(\"hello:\" + i);\r\n" + "i++;\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame4_whileTest() { compareSrc(4, "trace(\"whileTest\");\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "while(i < 10)\r\n" + "{\r\n" + "trace(\"hello:\" + i);\r\n" + "i++;\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame5_forWithContinueTest() { compareSrc(5, "trace(\"forWithContinueTest\");\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "for(;i < 10;i++)\r\n" + "{\r\n" + "trace(\"hello:\" + i);\r\n" @@ -140,26 +144,28 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"hawk\");\r\n" + "}\r\n" + "trace(\"end of the loop\");\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame6_doWhileTest() { compareSrc(6, "trace(\"doWhileTest\");\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "do\r\n" + "{\r\n" + "trace(\"i=\" + i);\r\n" + "i++;\r\n" + "}\r\n" + "while(i < 10);\r\n" - + "trace(\"end\");\r\n"); + + "trace(\"end\");\r\n" + ); } @Test public void frame7_switchTest() { compareSrc(7, "trace(\"switchTest\");\r\n" - + "var i=5;\r\n" + + "var i = 5;\r\n" + "switch(i)\r\n" + "{\r\n" + "case 0:\r\n" @@ -177,13 +183,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "default:\r\n" + "trace(\"default clause\");\r\n" + "}\r\n" - + "trace(\"scriptend\");\r\n"); + + "trace(\"scriptend\");\r\n" + ); } @Test public void frame8_strictEqualsTest() { compareSrc(8, "trace(\"strictEqualsTest\");\r\n" - + "var i=5;\r\n" + + "var i = 5;\r\n" + "if(i === 5)\r\n" + "{\r\n" + "trace(\"equals strict\");\r\n" @@ -191,13 +198,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "if(!(i === 5))\r\n" + "{\r\n" + "trace(\"not equals strict\");\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame9_switchForTest() { compareSrc(9, "trace(\"switchForTest\");\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "for(;i < 10;i++)\r\n" + "{\r\n" + "switch(i)\r\n" @@ -221,7 +229,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"def\");\r\n" + "}\r\n" + "trace(\"before loop end\");\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test @@ -231,13 +240,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"hello \" + what + \"! \" + second);\r\n" + "}\r\n" + "trace(\"functionTest\");\r\n" - + "hello(\"friend\",7);\r\n"); + + "hello(\"friend\",7);\r\n" + ); } @Test public void frame11_multipleConditionsTest() { compareSrc(11, "trace(\"multipleConditionsTest\");\r\n" - + "var k=5;\r\n" + + "var k = 5;\r\n" + "if(k == 7 && k == 8)\r\n" + "{\r\n" + "trace(\"first\");\r\n" @@ -246,13 +256,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "{\r\n" + "trace(\"second\");\r\n" + "}\r\n" - + "trace(\"finish\");\r\n"); + + "trace(\"finish\");\r\n" + ); } @Test public void frame12_multipleConditions2Test() { compareSrc(12, "trace(\"multipleConditions2Test\");\r\n" - + "var k=5;\r\n" + + "var k = 5;\r\n" + "if(k == 7 && k == 8)\r\n" + "{\r\n" + "trace(\"first\");\r\n" @@ -261,42 +272,45 @@ public class ActionScript2Test extends ActionStript2TestBase { + "{\r\n" + "trace(\"second\");\r\n" + "}\r\n" - + "trace(\"finish\");\r\n"); + + "trace(\"finish\");\r\n" + ); } @Test public void frame13_chainedAssignmentsTest() { compareSrc(13, "trace(\"chainedAssignmentsTest\");\r\n" - + "var a=7;\r\n" - + "var b=8;\r\n" - + "var c=9;\r\n" - + "var d=c = b = a = 10;\r\n" - + "trace(d);\r\n"); + + "var a = 7;\r\n" + + "var b = 8;\r\n" + + "var c = 9;\r\n" + + "var d = c = b = a = 10;\r\n" + + "trace(d);\r\n" + ); } @Test public void frame14_objectsTest() { compareSrc(14, "trace(\"objectsTest\");\r\n" - + "var flashBox=new Box(box1);\r\n" + + "var flashBox = new Box(box1);\r\n" + "_root.onEnterFrame = function()\r\n" + "{\r\n" + "flashBox.moveUp();\r\n" + "};\r\n" - + "var ship=new Ship(200);\r\n" - + "var enemy=new Enemy(56);\r\n" + + "var ship = new Ship(200);\r\n" + + "var enemy = new Enemy(56);\r\n" + "ship.moveDown(0.5);\r\n" + "ship.moveUp(0.2);\r\n" + "enemy.moveRight(230);\r\n" + "enemy.moveLeft(100);\r\n" - + "var mt=new com.jpexs.MyTest();\r\n" + + "var mt = new com.jpexs.MyTest();\r\n" + "mt.test();\r\n" - + "var c=new Cox(box1);\r\n"); + + "var c = new Cox(box1);\r\n" + ); } @Test public void frame15_doWhile2Test() { compareSrc(15, "trace(\"doWhile2Test\");\r\n" - + "var k=5;\r\n" + + "var k = 5;\r\n" + "do\r\n" + "{\r\n" + "k++;\r\n" @@ -309,21 +323,23 @@ public class ActionScript2Test extends ActionStript2TestBase { + "k = 5 + k;\r\n" + "}\r\n" + "}\r\n" - + "while(k < 9);\r\n"); + + "while(k < 9);\r\n" + ); } @Test public void frame16_whileAndTest() { compareSrc(16, "trace(\"whileAndTest\");\r\n" - + "var a=5;\r\n" - + "var b=10;\r\n" + + "var a = 5;\r\n" + + "var b = 10;\r\n" + "while(a < 10 && b > 1)\r\n" + "{\r\n" + "a++;\r\n" + "b--;\r\n" + "}\r\n" + "a = 7;\r\n" - + "b = 9;\r\n"); + + "b = 9;\r\n" + ); } @Test @@ -345,17 +361,18 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "trace(\"forInTest\");\r\n" + "trace(testForIn());\r\n" - + "var arr=[];\r\n" + + "var arr = [];\r\n" + "for(var a in arr)\r\n" + "{\r\n" + "trace(a);\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test public void frame18_tryTest() { compareSrc(18, "trace(\"tryTest\");\r\n" - + "var k=5;\r\n" + + "var k = 5;\r\n" + "try\r\n" + "{\r\n" + "k = Infinity;\r\n" @@ -378,7 +395,7 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"bug2 \" + e);\r\n" + "}\r\n" + "trace(\"next2\");\r\n" - + "var k=5;\r\n" + + "var k = 5;\r\n" + "try\r\n" + "{\r\n" + "k = Infinity;\r\n" @@ -387,15 +404,17 @@ public class ActionScript2Test extends ActionStript2TestBase { + "{\r\n" + "trace(\"final\");\r\n" + "}\r\n" - + "trace(\"end\");\r\n"); + + "trace(\"end\");\r\n" + ); } @Test public void frame19_indicesTest() { compareSrc(19, "trace(\"indicesTest\");\r\n" - + "var k=[1,2,3];\r\n" - + "var b=k[1];\r\n" - + "trace(b);\r\n"); + + "var k = [1,2,3];\r\n" + + "var b = k[1];\r\n" + + "trace(b);\r\n" + ); } @Test @@ -405,36 +424,38 @@ public class ActionScript2Test extends ActionStript2TestBase { + "return 1;\r\n" + "}\r\n" + "trace(\"incDecTest\");\r\n" - + "var i=5;\r\n" - + "var b=i++;\r\n" - + "var c=--i + 5;\r\n" + + "var i = 5;\r\n" + + "var b = i++;\r\n" + + "var c = --i + 5;\r\n" + "trace(\"a:\" + a + \" b:\" + b + \" c:\" + c);\r\n" - + "var arr=[1,2,3];\r\n" + + "var arr = [1,2,3];\r\n" + "arr[tst()]++;\r\n" - + "var d=arr[tst()];\r\n" - + "trace(d);\r\n"); + + "var d = arr[tst()];\r\n" + + "trace(d);\r\n" + ); } @Test public void frame21_chainedAssignments2Test() { compareSrc(21, "trace(\"chainedAssignments2Test\");\r\n" - + "var a=5;\r\n" - + "var b=6;\r\n" - + "var c=7;\r\n" - + "var d=c = b = a = 4;\r\n" + + "var a = 5;\r\n" + + "var b = 6;\r\n" + + "var c = 7;\r\n" + + "var d = c = b = a = 4;\r\n" + "if((d = c = b = a = 7) > 2)\r\n" + "{\r\n" + "trace(d);\r\n" + "}\r\n" + "trace(d + 1);\r\n" - + "var i=0;\r\n" + + "var i = 0;\r\n" + "while(i < 5)\r\n" + "{\r\n" + "if(i == 7)\r\n" + "{\r\n" + "}\r\n" + "i++;\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test @@ -450,7 +471,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "_loc1_ = _loc1_ * 9;\r\n" + "trace(_loc1_);\r\n" + "}\r\n" - + "trace(\"function2Test\");\r\n"); + + "trace(\"function2Test\");\r\n" + ); } @Test @@ -482,15 +504,17 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"finally\");\r\n" + "}\r\n" + "}\r\n" - + "trace(\"tryFunctionTest\");\r\n"); + + "trace(\"tryFunctionTest\");\r\n" + ); } @Test public void frame24_ternarTest() { compareSrc(24, "trace(\"ternarTest\");\r\n" - + "var a=5;\r\n" - + "var b=a != 4?3:2;\r\n" - + "trace(b);\r\n"); + + "var a = 5;\r\n" + + "var b = a != 4?3:2;\r\n" + + "trace(b);\r\n" + ); } @Test @@ -516,7 +540,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "return 8;\r\n" + "}\r\n" + "trace(\"forInInTest\");\r\n" - + "tst();\r\n"); + + "tst();\r\n" + ); } @Test @@ -528,7 +553,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "trace(\"registersFuncTest\");\r\n" + "tst(5);\r\n" - + "var s=String(5);\r\n"); + + "var s = String(5);\r\n" + ); } @Test @@ -537,7 +563,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "ifFrameLoaded(9)\r\n" + "{\r\n" + "trace(\"loaded\");\r\n" - + "}\r\n"); + + "}\r\n" + ); } @Test @@ -554,18 +581,19 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "}\r\n" + "trace(\"function3Test\");\r\n" - + "var c=7;\r\n" - + "var d=7;\r\n" - + "var e=8;\r\n" - + "tst();\r\n"); + + "var c = 7;\r\n" + + "var d = 7;\r\n" + + "var e = 8;\r\n" + + "tst();\r\n" + ); } @Test public void frame29_commaOperatorTest() { compareSrc(29, "trace(\"commaOperatorTest\");\r\n" - + "var a=0;\r\n" - + "var b=0;\r\n" - + "var c=0;\r\n" + + "var a = 0;\r\n" + + "var b = 0;\r\n" + + "var c = 0;\r\n" + "while(true)\r\n" + "{\r\n" + "a++;\r\n" @@ -578,13 +606,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "break;\r\n" + "}\r\n" - + "trace(\"konec\");\r\n"); + + "trace(\"konec\");\r\n" + ); } @Test public void frame30_commaOperator2Test() { compareSrc(30, "trace(\"commaOperator2Test\");\r\n" - + "var k=8;\r\n" + + "var k = 8;\r\n" + "do\r\n" + "{\r\n" + "if(k == 9)\r\n" @@ -600,7 +629,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"gg\");\r\n" + "}\r\n" + "while(k++, k < 10);\r\n" - + "trace(\"ss\");\r\n"); + + "trace(\"ss\");\r\n" + ); } @Test @@ -623,18 +653,20 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "}\r\n" + "trace(\"function4Test\");\r\n" - + "tst();\r\n"); + + "tst();\r\n" + ); } @Test public void frame32_pushTest() { - compareSrc(32, "trace(\"pushTest\");\r\n"); + compareSrc(32, "trace(\"pushTest\");\r\n" + ); } @Test public void frame33_commaOperator3Test() { compareSrc(33, "trace(\"commaOperator3Test\");\r\n" - + "var k=1;\r\n" + + "var k = 1;\r\n" + "while(true)\r\n" + "{\r\n" + "k++;\r\n" @@ -646,13 +678,14 @@ public class ActionScript2Test extends ActionStript2TestBase { + "}\r\n" + "break;\r\n" + "}\r\n" - + "trace(\"end\");\r\n"); + + "trace(\"end\");\r\n" + ); } @Test public void frame34_commaOperator4Test() { compareSrc(34, "trace(\"commaOperator4Test\");\r\n" - + "var k=0;\r\n" + + "var k = 0;\r\n" + "do\r\n" + "{\r\n" + "trace(k);\r\n" @@ -669,7 +702,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "k++;\r\n" + "}\r\n" + "while(k = k + 5, k < 20);\r\n" - + "trace(\"end\");\r\n"); + + "trace(\"end\");\r\n" + ); } @Test @@ -679,17 +713,17 @@ public class ActionScript2Test extends ActionStript2TestBase { + "trace(\"test\");\r\n" + "}\r\n" + "trace(\"globalFunctionsTest\");\r\n" - + "var k=Array(1,2,3);\r\n" - + "var a=1;\r\n" - + "var b=Boolean(a);\r\n" + + "var k = Array(1,2,3);\r\n" + + "var a = 1;\r\n" + + "var b = Boolean(a);\r\n" + "call(5);\r\n" - + "var c=\"A\";\r\n" + + "var c = \"A\";\r\n" + "clearInterval(5);\r\n" + "clearTimeout(4);\r\n" + "var mc;\r\n" + "duplicateMovieClip(mc,\"copy\",16389);\r\n" + "a = escape(\"how\");\r\n" - + "var f=a;\r\n" + + "var f = a;\r\n" + "fscommand(\"alert(\\\"hi\\\");\");\r\n" + "a = mc._alpha;\r\n" + "a = getTimer();\r\n" @@ -750,7 +784,8 @@ public class ActionScript2Test extends ActionStript2TestBase { + "a = unescape(f);\r\n" + "unloadMovie(mc);\r\n" + "unloadMovieNum(4);\r\n" - + "updateAfterEvent();\r\n"); + + "updateAfterEvent();\r\n" + ); } } diff --git a/trunk/test/com/jpexs/decompiler/flash/ActionScript3Test.java b/trunk/test/com/jpexs/decompiler/flash/ActionScript3Test.java index 9af128bb5..bcbd883db 100644 --- a/trunk/test/com/jpexs/decompiler/flash/ActionScript3Test.java +++ b/trunk/test/com/jpexs/decompiler/flash/ActionScript3Test.java @@ -132,7 +132,8 @@ public class ActionScript3Test { + "{\r\n" + "trace(\"a=\" + a);\r\n" + "a++;\r\n" - + "}while(a < 20);\r\n" + + "}\r\n" + + "while(a < 20);\r\n" + "\r\n", false); } @@ -450,9 +451,7 @@ public class ActionScript3Test { + "trace(\"b!=6\");\r\n" + "}\r\n" + "}\r\n" - + "else\r\n" - + "{\r\n" - + "if(b == 7)\r\n" + + "else if(b == 7)\r\n" + "{\r\n" + "trace(\"b==7\");\r\n" + "}\r\n" @@ -460,7 +459,7 @@ public class ActionScript3Test { + "{\r\n" + "trace(\"b!=7\");\r\n" + "}\r\n" - + "}\r\n" + + "\r\n" + "trace(\"end\");\r\n", false); } @@ -502,7 +501,7 @@ public class ActionScript3Test { + "list[0] = \"first\";\r\n" + "list[1] = \"second\";\r\n" + "list[2] = \"third\";\r\n" - + "for each (item in list)\r\n" + + "for each(item in list)\r\n" + "{\r\n" + "trace(\"item #\" + item);\r\n" + "}\r\n", false); @@ -518,7 +517,7 @@ public class ActionScript3Test { + "list[2] = \"third\";\r\n" + "test = new Array();\r\n" + "test[0] = 0;\r\n" - + "for each (test[0] in list)\r\n" + + "for each(test[0] in list)\r\n" + "{\r\n" + "trace(\"item #\" + test[0]);\r\n" + "}\r\n", false); @@ -531,7 +530,7 @@ public class ActionScript3Test { + "list[0] = \"first\";\r\n" + "list[1] = \"second\";\r\n" + "list[2] = \"third\";\r\n" - + "for each (this.testPriv in list)\r\n" + + "for each(this.testPriv in list)\r\n" + "{\r\n" + "trace(\"item #\" + this.testPriv);\r\n" + "}\r\n", false); @@ -650,11 +649,11 @@ public class ActionScript3Test { public void testForIn() { decompileMethod("testForIn", "var dic:Dictionary = null;\r\n" + "var item:Object = null;\r\n" - + "for (item in dic)\r\n" + + "for(item in dic)\r\n" + "{\r\n" + "trace(item);\r\n" + "}\r\n" - + "for each (item in dic)\r\n" + + "for each(item in dic)\r\n" + "{\r\n" + "trace(item);\r\n" + "}\r\n", false); @@ -686,9 +685,7 @@ public class ActionScript3Test { + "{\r\n" + "arguments.concat(i);\r\n" + "}\r\n" - + "else\r\n" - + "{\r\n" - + "if(i == 0)\r\n" + + "else if(i == 0)\r\n" + "{\r\n" + "i = j++;\r\n" + "}\r\n" @@ -696,7 +693,7 @@ public class ActionScript3Test { + "{\r\n" + "arr[0]();\r\n" + "}\r\n" - + "}\r\n" + + "\r\n" + "return i == 0;\r\n", false); } @@ -779,7 +776,8 @@ public class ActionScript3Test { + "k = 5 - k;\r\n" + "}\r\n" + "k--;\r\n" - + "}while(k < 9);\r\n" + + "}\r\n" + + "while(k < 9);\r\n" + "\r\n" + "return 2;\r\n", false); } @@ -890,18 +888,18 @@ public class ActionScript3Test { + "return 4;\r\n", false); } - @Test - public void testOptionalParameters() { + @Test + public void testOptionalParameters() { String methodName = "testOptionalParameters"; - int methodInfo = abc.findMethodInfoByName(clsIndex, methodName); - int bodyIndex = abc.findMethodBodyByName(clsIndex, methodName); - assertTrue(methodInfo > -1); - assertTrue(bodyIndex > -1); - HilightedTextWriter writer = new HilightedTextWriter(new CodeFormatting(), false); - abc.method_info.get(methodInfo).getParamStr(writer, abc.constants, abc.bodies.get(bodyIndex), abc, new ArrayList()); - String actualResult = writer.toString().replaceAll("[ \r\n]", ""); - String expectedResult = "p1:Event=null,p2:Number=1,p3:Number=-1,p4:Number=-1.1,p5:Number=-1.1,p6:String=\"a\""; - expectedResult = expectedResult.replaceAll("[ \r\n]", ""); - assertEquals(actualResult, expectedResult); - } + int methodInfo = abc.findMethodInfoByName(clsIndex, methodName); + int bodyIndex = abc.findMethodBodyByName(clsIndex, methodName); + assertTrue(methodInfo > -1); + assertTrue(bodyIndex > -1); + HilightedTextWriter writer = new HilightedTextWriter(new CodeFormatting(), false); + abc.method_info.get(methodInfo).getParamStr(writer, abc.constants, abc.bodies.get(bodyIndex), abc, new ArrayList()); + String actualResult = writer.toString().replaceAll("[ \r\n]", ""); + String expectedResult = "p1:Event=null,p2:Number=1,p3:Number=-1,p4:Number=-1.1,p5:Number=-1.1,p6:String=\"a\""; + expectedResult = expectedResult.replaceAll("[ \r\n]", ""); + assertEquals(actualResult, expectedResult); } +}