From 06feae4113d5270303db901d14c77843ab635c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Fri, 18 Nov 2022 14:15:21 +0100 Subject: [PATCH] Fixed #1807 Proper parenthesis around call inside another call --- CHANGELOG.md | 2 + .../abc/avm2/model/ConstructAVM2Item.java | 11 +- .../ActionScript3AssembledDecompileTest.java | 64 ++---- .../ActionScript3ClassicAirDecompileTest.java | 213 +++++++++--------- .../ActionScript3ClassicDecompileTest.java | 209 ++++++++--------- ...ctionScript3CrossCompileDecompileTest.java | 78 +++---- ...ipt3CrossCompileSwfToolsDecompileTest.java | 78 +++---- .../testdata/as3_new/bin/as3_new.air.swf | Bin 20817 -> 21010 bytes .../testdata/as3_new/bin/as3_new.flex.swf | Bin 26816 -> 26947 bytes libsrc/ffdec_lib/testdata/as3_new/src/Main.as | 1 + .../as3_new/src/tests/TestCallCall.as | 13 ++ 11 files changed, 313 insertions(+), 356 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCallCall.as diff --git a/CHANGELOG.md b/CHANGELOG.md index b70f392aa..6153f3761 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ All notable changes to this project will be documented in this file. - [#1803] AS3 Direct editation - Colliding catch name with other variable names / arguments - AS3 Direct editation - slow property resolving (Now up to 10 times faster compilation) - [#1875] Garbage collect SWF and its caches after closing it +- [#1807] Proper parenthesis around call inside another call ### Changed - GFX - DefineExternalImage2 no longer handled as character @@ -2610,6 +2611,7 @@ All notable changes to this project will be documented in this file. [#1872]: https://www.free-decompiler.com/flash/issues/1872 [#1692]: https://www.free-decompiler.com/flash/issues/1692 [#1757]: https://www.free-decompiler.com/flash/issues/1757 +[#1807]: https://www.free-decompiler.com/flash/issues/1807 [#1867]: https://www.free-decompiler.com/flash/issues/1867 [#1868]: https://www.free-decompiler.com/flash/issues/1868 [#1649]: https://www.free-decompiler.com/flash/issues/1649 diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructAVM2Item.java index 380aa532f..f49c93716 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructAVM2Item.java @@ -53,11 +53,18 @@ public class ConstructAVM2Item extends AVM2Item { return object.toString(writer, localData); } writer.append("new "); - if (object.getPrecedence() > getPrecedence()) { + + boolean objectIsCall = (object instanceof CallAVM2Item) || + (object instanceof CallPropertyAVM2Item) || + (object instanceof CallMethodAVM2Item) || + (object instanceof CallStaticAVM2Item) || + (object instanceof CallSuperAVM2Item); + + if (object.getPrecedence() > getPrecedence() || objectIsCall) { writer.append("("); } object.toString(writer, localData); - if (object.getPrecedence() > getPrecedence()) { + if (object.getPrecedence() > getPrecedence() || objectIsCall) { writer.append(")"); } writer.spaceBeforeCallParenthesies(args.size()); diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3AssembledDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3AssembledDecompileTest.java index 694266ce0..e501d315d 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3AssembledDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3AssembledDecompileTest.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2010-2022 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ package com.jpexs.decompiler.flash.as3decompile; import com.jpexs.decompiler.flash.ActionScript3DecompileTestBase; @@ -35,7 +19,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT @Test public void testActivationProps() { decompileMethod("assembled", "testActivationProps", "var myvar2:int = 10;\r\n", - false); + false); } @Test @@ -44,7 +28,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "trace(\"hey\");\r\n" + "}\r\n", - false); + false); } @Test @@ -52,7 +36,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT decompileMethod("assembled", "testDecrementPrecedence", "var _loc2_:int = 10;\r\n" + "var _loc1_:int = 5;\r\n" + "var _loc3_:* = _loc2_ & (1 << _loc1_) - 1;\r\n", - false); + false); } @Test @@ -78,21 +62,21 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "}\r\n" + "return 5;\r\n", - false); + false); } @Test public void testDoubleDup() { decompileMethod("assembled", "testDoubleDup", "var _loc10_:Rectangle = myprop(_loc5_);\r\n" + "_loc10_.mymethod(-_loc10_.width,-_loc10_.height);\r\n", - false); + false); } @Test public void testDup() { decompileMethod("assembled", "testDup", "var _loc1_:Number;\r\n" + "return 1 - (_loc1_ = 1 - _loc1_ / _loc4_) * _loc1_;\r\n", - false); + false); } @Test @@ -103,7 +87,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "trace(_loc2_);\r\n" + "}\r\n", - false); + false); } @Test @@ -119,7 +103,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "}\r\n" + "}\r\n" + "_loc3_ = 0;\r\n", - false); + false); } @Test @@ -128,14 +112,14 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "_loc6_.methodname(_loc1_,_loc2_,_loc5_);\r\n" + "}\r\n", - false); + false); } @Test public void testIncrement() { decompileMethod("assembled", "testIncrement", "super();\r\n" + "b = a++;\r\n", - false); + false); } @Test @@ -144,13 +128,13 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "somemethod();\r\n" + "}\r\n", - false); + false); } @Test public void testIncrement3() { decompileMethod("assembled", "testIncrement3", "_loc1_.length--;\r\n", - false); + false); } @Test @@ -166,7 +150,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "}\r\n" + "§§pop();\r\n" + "§§pop();\r\n", - false); + false); } @Test @@ -175,14 +159,14 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "var myslot:int;\r\n" + "myname.somemethod(\"okay\",myslot = _loc5_);\r\n" + "myname.start();\r\n", - false); + false); } @Test public void testSetSlotFindProperty() { decompileMethod("assembled", "testSetSlotFindProperty", "var myprop:int;\r\n" + "return myprop = 50;\r\n", - false); + false); } @Test @@ -202,7 +186,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "_loc2_ = \"C\";\r\n" + "}\r\n" + "_loc2_ = \"after\";\r\n", - false); + false); } @Test @@ -225,7 +209,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "default:\r\n" + "_loc2_ = 100;\r\n" + "}\r\n", - false); + false); } @Test @@ -253,7 +237,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "case 2:\r\n" + "trace(\"case2\");\r\n" + "}\r\n", - false); + false); } @Test @@ -299,7 +283,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "}\r\n" + "trace(\"G\");\r\n" + "return null;\r\n", - false); + false); } @Test @@ -328,7 +312,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -349,7 +333,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -368,7 +352,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "}\r\n" + "while(_loc5_ <= 100);\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -391,7 +375,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "return;\r\n" + "}\r\n" + "trace(\"finish\");\r\n", - false); + false); } @Test @@ -405,6 +389,6 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "return _loc5_;\r\n" + "}\r\n", - false); + false); } } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java index 7641a8463..29e4e3be4 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2010-2022 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ package com.jpexs.decompiler.flash.as3decompile; import com.jpexs.decompiler.flash.ActionScript3DecompileTestBase; @@ -42,20 +26,27 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(arguments[0]);\r\n" + "}\r\n", - false); + false); } @Test public void testArguments() { decompileMethod("classic_air", "testArguments", "return arguments[0];\r\n", - false); + false); + } + + @Test + public void testCallCall() { + decompileMethod("classic_air", "testCallCall", "var o:* = new getDefinitionByName(\"Object\");\r\n" + + "var o2:* = new (getDefinitionByName(\"Object\"))();\r\n", + false); } @Test public void testCallLocal() { decompileMethod("classic_air", "testCallLocal", "var f:Function = getF();\r\n" + "var b:int = f(1,3);\r\n", - false); + false); } @Test @@ -75,7 +66,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"infinally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -95,7 +86,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"ch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -108,7 +99,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "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 @@ -116,7 +107,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile decompileMethod("classic_air", "testComma", "var a:int = 5;\r\n" + "var b:int = 0;\r\n" + "trace(a > 4 ? (b = 5, a) : 35);\r\n", - false); + false); } @Test @@ -124,7 +115,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile decompileMethod("classic_air", "testComplexExpressions", "var i:int = 0;\r\n" + "var j:int = 0;\r\n" + "j = i += i += i++;\r\n", - false); + false); } @Test @@ -154,7 +145,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(e.message);\r\n" + "}\r\n", - false); + false); } @Test @@ -220,7 +211,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"hello\");\r\n" + "}\r\n", - false); + false); } @Test @@ -236,7 +227,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "}\r\n" + "k = 7;\r\n", - false); + false); } @Test @@ -256,7 +247,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "vnumber = 0.5;\r\n" + "vnumber = 6;\r\n" + "vobject = vclass;\r\n", - false); + false); } @Test @@ -274,7 +265,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"4\");\r\n" + "}\r\n" + "trace(\"after switch\");\r\n", - false); + false); } @Test @@ -296,7 +287,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test @@ -308,7 +299,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "a++;\r\n" + "}\r\n" + "while(a < 20);\r\n", - false); + false); } @Test @@ -329,7 +320,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "while(k < 9);\r\n" + "return 2;\r\n", - false); + false); } @Test @@ -339,7 +330,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "nextChar();\r\n" + "}\r\n" + "while(ch != \"\\n\" && ch != \"\");\r\n", - false); + false); } @Test @@ -361,7 +352,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "while(k < 10);\r\n" + "trace(\"ss\");\r\n", - false); + false); } @Test @@ -372,7 +363,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"between\");\r\n" + "var g:* = k.(d.attrib++, false);\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -393,7 +384,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "arr[0]();\r\n" + "}\r\n" + "return i == 0;\r\n", - false); + false); } @Test @@ -415,7 +406,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "return \"hu\" + str;\r\n" + "}\r\n", - false); + false); } @Test @@ -426,7 +417,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"a=\" + a);\r\n" + "a++;\r\n" + "}\r\n", - false); + false); } @Test @@ -452,7 +443,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test @@ -467,7 +458,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"hello:\" + a);\r\n" + "a++;\r\n" + "}\r\n", - false); + false); } @Test @@ -496,7 +487,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"part5\");\r\n" + "}\r\n", - false); + false); } @Test @@ -511,7 +502,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"item #\" + item);\r\n" + "}\r\n", - false); + false); } @Test @@ -528,7 +519,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"item #\" + test[0]);\r\n" + "}\r\n", - false); + false); } @Test @@ -542,7 +533,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"item #\" + this.testPriv);\r\n" + "}\r\n", - false); + false); } @Test @@ -560,7 +551,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "return item;\r\n" + "}\r\n" + "return null;\r\n", - false); + false); } @Test @@ -586,7 +577,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"exit\");\r\n", - false); + false); } @Test @@ -601,7 +592,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(item);\r\n" + "}\r\n", - false); + false); } @Test @@ -620,7 +611,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"forend\");\r\n" + "}\r\n", - false); + false); } @Test @@ -634,7 +625,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "return item;\r\n" + "}\r\n" + "return null;\r\n", - false); + false); } @Test @@ -655,7 +646,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"final\");\r\n" + "}\r\n", - false); + false); } @Test @@ -688,7 +679,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"C\");\r\n" + "}\r\n", - false); + false); } @Test @@ -720,7 +711,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"after\");\r\n" + "}\r\n" + "return 89;\r\n", - false); + false); } @Test @@ -744,7 +735,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"E\");\r\n" + "}\r\n" + "return 5;\r\n", - false); + false); } @Test @@ -772,7 +763,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } @Test @@ -793,7 +784,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } @Test @@ -818,7 +809,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "j++;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -843,7 +834,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"D\");\r\n" + "}\r\n" + "trace(\"finish\");\r\n", - false); + false); } @Test @@ -873,13 +864,13 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"before loop end\");\r\n" + "}\r\n", - false); + false); } @Test public void testHello() { decompileMethod("classic_air", "testHello", "trace(\"hello\");\r\n", - false); + false); } @Test @@ -889,7 +880,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"onTrue\");\r\n" + "}\r\n", - false); + false); } @Test @@ -903,7 +894,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } @Test @@ -924,7 +915,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"in finally\");\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -948,7 +939,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"C\");\r\n" + "return 7;\r\n", - false); + false); } @Test @@ -973,7 +964,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"in catch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -995,14 +986,14 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test public void testImportedVar() { decompileMethod("classic_air", "testImportedVar", "trace(myvar);\r\n" + "myvar = 5;\r\n", - false); + false); } @Test @@ -1016,7 +1007,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "b++;\r\n" + "var c:int = 1;\r\n" + "b = c++;\r\n", - false); + false); } @Test @@ -1067,7 +1058,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"--attr\");\r\n" + "trace(--attrx);\r\n" + "--attrx;\r\n", - false); + false); } @Test @@ -1087,7 +1078,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "return first;\r\n" + "};\r\n" + "traceParameter(\"hello\");\r\n", - false); + false); } @Test @@ -1098,7 +1089,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(testProm);\r\n" + "};\r\n" + "innerFunc(a);\r\n", - false); + false); } @Test @@ -1114,7 +1105,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "s = 8;\r\n" + "}\r\n" + "innerFunc(a);\r\n", - false); + false); } @Test @@ -1141,7 +1132,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"b!=7\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1166,7 +1157,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"finally block\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1180,14 +1171,14 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "b = true;\r\n" + "}\r\n" + "b = (i == 0 || i == 1) && j == 0;\r\n", - false); + false); } @Test public void testManualConvert() { decompileMethod("classic_air", "testManualConvert", "trace(\"String(this).length\");\r\n" + "trace(String(this).length);\r\n", - false); + false); } @Test @@ -1204,7 +1195,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "default:\r\n" + "jj = 3;\r\n" + "}\r\n", - false); + false); } @Test @@ -1220,20 +1211,20 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } @Test public void testNamedAnonFunctions() { - decompileMethod("classic_air", "testNamedAnonFunctions", "var test:* = new function():*\r\n" + decompileMethod("classic_air", "testNamedAnonFunctions", "var test:* = new (function():*\r\n" + "{\r\n" + "var testFunc:Function;\r\n" + "return testFunc = function(param1:*, param2:int, param3:Array):Boolean\r\n" + "{\r\n" + "return (param1 as TestClass2).attrib1 == 5;\r\n" + "};\r\n" - + "}()();\r\n", - false); + + "}())();\r\n", + false); } @Test @@ -1244,33 +1235,33 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "var b:* = ns::[name];\r\n" + "trace(b.c);\r\n" + "var c:* = myInternal::neco;\r\n", - false); + false); } @Test public void testNegate() { decompileMethod("classic_air", "testNegate", "var a:int = 5;\r\n" + "var b:int = ~a;\r\n", - false); + false); } @Test public void testNumberCall() { decompileMethod("classic_air", "testNumberCall", "var a:String = (5).toString();\r\n" + "var b:String = 5.2.toString();\r\n", - false); + false); } @Test public void testParamNames() { decompileMethod("classic_air", "testParamNames", "return firstp + secondp + thirdp;\r\n", - false); + false); } @Test public void testParamsCount() { decompileMethod("classic_air", "testParamsCount", "return firstp;\r\n", - false); + false); } @Test @@ -1287,7 +1278,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "a = 6;\r\n" + "a = 0.6666666666666666;\r\n" + "trace(\"a=\" + a);\r\n", - false); + false); } @Test @@ -1297,7 +1288,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "var c:int = 3;\r\n" + "var d:* = a << (b >>> c);\r\n" + "var e:* = a << b >>> c;\r\n", - false); + false); } @Test @@ -1308,7 +1299,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "d.method(d.attrib * 5);\r\n" + "}\r\n", - false); + false); } @Test @@ -1317,14 +1308,14 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "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 public void testRest() { decompileMethod("classic_air", "testRest", "trace(\"firstRest:\" + restval[0]);\r\n" + "return firstp;\r\n", - false); + false); } @Test @@ -1334,7 +1325,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"is eight\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1343,7 +1334,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "this.traceIt(\"hello30\");\r\n" + "this.traceIt(\"hello\" + (k - 1));\r\n" + "this.traceIt(\"hello56\");\r\n", - false); + false); } @Test @@ -1353,7 +1344,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"backslash: \\\\ \");\r\n" + "trace(\"single quotes: \\'hello!\\'\");\r\n" + "trace(\"new line \\r\\n hello!\");\r\n", - false); + false); } @Test @@ -1372,7 +1363,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "case 89:\r\n" + "trace(\"eightynine\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1389,7 +1380,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "case \"C\":\r\n" + "trace(\"is C\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1411,7 +1402,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "default:\r\n" + "trace(\"default clause\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1430,7 +1421,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "case 1:\r\n" + "}\r\n" + "trace(\"B\");\r\n", - false); + false); } @Test @@ -1441,7 +1432,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "var d:int = 78;\r\n" + "var e:* = a == b ? (c == d ? 1 : 7) : 3;\r\n" + "trace(\"e=\" + e);\r\n", - false); + false); } @Test @@ -1466,7 +1457,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"Finally part\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1484,7 +1475,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "trace(\"in catch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1512,7 +1503,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "{\r\n" + "return 4;\r\n" + "}\r\n", - false); + false); } @Test @@ -1554,7 +1545,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } @Test @@ -1588,7 +1579,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } @Test @@ -1599,14 +1590,14 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "var a:int = 5;\r\n" + "v[a * 8 - 39] = \"hi2\";\r\n" + "trace(v[0]);\r\n", - false); + false); } @Test public void testVector2() { decompileMethod("classic_air", "testVector2", "var a:Vector.> = new Vector.>();\r\n" + "var b:Vector. = new [10,20,30];\r\n", - false); + false); } @Test @@ -1620,7 +1611,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "a = 7;\r\n" + "b = 9;\r\n", - false); + false); } @Test @@ -1639,7 +1630,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "}\r\n" + "return \"B\";\r\n", - false); + false); } @Test @@ -1661,7 +1652,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "trace(\"hello2\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1684,7 +1675,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "continue;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -1712,7 +1703,7 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "trace(\"after_try\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1834,6 +1825,6 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "}\r\n" + "]]>;\r\n" + "var testComment:XML = ;\r\n", - false); + false); } } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java index a95eacb3b..fcaf0c30a 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2010-2022 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ package com.jpexs.decompiler.flash.as3decompile; import com.jpexs.decompiler.flash.ActionScript3DecompileTestBase; @@ -42,20 +26,27 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(arguments[0]);\r\n" + "}\r\n", - false); + false); } @Test public void testArguments() { decompileMethod("classic", "testArguments", "return arguments[0];\r\n", - false); + false); + } + + @Test + public void testCallCall() { + decompileMethod("classic", "testCallCall", "var o:* = new getDefinitionByName(\"Object\")();\r\n" + + "var o2:* = new (getDefinitionByName(\"Object\"))();\r\n", + false); } @Test public void testCallLocal() { decompileMethod("classic", "testCallLocal", "var f:Function = this.getF();\r\n" + "var b:int = f(1,3);\r\n", - false); + false); } @Test @@ -75,7 +66,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"infinally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -95,7 +86,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"ch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -108,7 +99,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "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 @@ -116,7 +107,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes decompileMethod("classic", "testComma", "var a:int = 5;\r\n" + "var b:int = 0;\r\n" + "trace(a > 4 ? (b = 5, a) : 35);\r\n", - false); + false); } @Test @@ -124,7 +115,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes decompileMethod("classic", "testComplexExpressions", "var i:int = 0;\r\n" + "var j:int = 0;\r\n" + "j = i = i + (i = i + i++);\r\n", - false); + false); } @Test @@ -154,7 +145,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(e.message);\r\n" + "}\r\n", - false); + false); } @Test @@ -218,7 +209,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"hello\");\r\n" + "}\r\n", - false); + false); } @Test @@ -234,7 +225,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "}\r\n" + "k = 7;\r\n", - false); + false); } @Test @@ -254,7 +245,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "vnumber = 0.5;\r\n" + "vnumber = 6;\r\n" + "vobject = vclass;\r\n", - false); + false); } @Test @@ -272,7 +263,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"4\");\r\n" + "}\r\n" + "trace(\"after switch\");\r\n", - false); + false); } @Test @@ -294,7 +285,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test @@ -306,7 +297,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "a++;\r\n" + "}\r\n" + "while(a < 20);\r\n", - false); + false); } @Test @@ -327,7 +318,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "while(k < 9);\r\n" + "return 2;\r\n", - false); + false); } @Test @@ -337,7 +328,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "this.nextChar();\r\n" + "}\r\n" + "while(this.ch != \"\\n\" && this.ch != \"\");\r\n", - false); + false); } @Test @@ -359,7 +350,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "while(k < 10);\r\n" + "trace(\"ss\");\r\n", - false); + false); } @Test @@ -373,7 +364,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"between\");\r\n" + "g = k.(++d.attrib, 0);\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -394,7 +385,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "arr[0]();\r\n" + "}\r\n" + "return i == 0;\r\n", - false); + false); } @Test @@ -416,7 +407,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "return \"hu\" + str;\r\n" + "}\r\n", - false); + false); } @Test @@ -425,7 +416,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"a=\" + a);\r\n" + "}\r\n", - false); + false); } @Test @@ -450,7 +441,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test @@ -463,7 +454,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"hello:\" + a);\r\n" + "}\r\n", - false); + false); } @Test @@ -491,7 +482,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"part5\");\r\n" + "}\r\n", - false); + false); } @Test @@ -506,7 +497,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"item #\" + item);\r\n" + "}\r\n", - false); + false); } @Test @@ -523,7 +514,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"item #\" + test[0]);\r\n" + "}\r\n", - false); + false); } @Test @@ -537,7 +528,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"item #\" + this.testPriv);\r\n" + "}\r\n", - false); + false); } @Test @@ -555,7 +546,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "return item;\r\n" + "}\r\n" + "return null;\r\n", - false); + false); } @Test @@ -580,7 +571,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"exit\");\r\n", - false); + false); } @Test @@ -595,7 +586,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(item);\r\n" + "}\r\n", - false); + false); } @Test @@ -615,7 +606,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"forend\");\r\n" + "}\r\n", - false); + false); } @Test @@ -629,7 +620,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "return item;\r\n" + "}\r\n" + "return null;\r\n", - false); + false); } @Test @@ -652,7 +643,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"final\");\r\n" + "}\r\n", - false); + false); } @Test @@ -685,7 +676,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"C\");\r\n" + "}\r\n", - false); + false); } @Test @@ -717,7 +708,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"after\");\r\n" + "}\r\n" + "return 89;\r\n", - false); + false); } @Test @@ -741,7 +732,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"E\");\r\n" + "}\r\n" + "return 5;\r\n", - false); + false); } @Test @@ -768,7 +759,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } @Test @@ -789,7 +780,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } @Test @@ -813,7 +804,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "j++;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -838,7 +829,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"D\");\r\n" + "}\r\n" + "trace(\"finish\");\r\n", - false); + false); } @Test @@ -867,13 +858,13 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"before loop end\");\r\n" + "}\r\n", - false); + false); } @Test public void testHello() { decompileMethod("classic", "testHello", "trace(\"hello\");\r\n", - false); + false); } @Test @@ -883,7 +874,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"onTrue\");\r\n" + "}\r\n", - false); + false); } @Test @@ -897,7 +888,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } @Test @@ -918,7 +909,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"in finally\");\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -942,7 +933,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"C\");\r\n" + "return 7;\r\n", - false); + false); } @Test @@ -966,7 +957,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"in catch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -988,14 +979,14 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } @Test public void testImportedVar() { decompileMethod("classic", "testImportedVar", "trace(myvar);\r\n" + "myvar = 5;\r\n", - false); + false); } @Test @@ -1009,7 +1000,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "b++;\r\n" + "var c:* = 1;\r\n" + "b = c++;\r\n", - false); + false); } @Test @@ -1062,7 +1053,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"--attr\");\r\n" + "trace(--this.attrx);\r\n" + "--this.attrx;\r\n", - false); + false); } @Test @@ -1084,7 +1075,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "return first;\r\n" + "};\r\n" + "traceParameter(\"hello\");\r\n", - false); + false); } @Test @@ -1095,7 +1086,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(testProm);\r\n" + "};\r\n" + "innerFunc(a);\r\n", - false); + false); } @Test @@ -1111,7 +1102,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "s = 8;\r\n" + "}\r\n" + "innerFunc(a);\r\n", - false); + false); } @Test @@ -1138,7 +1129,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"b!=7\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1163,7 +1154,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"finally block\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1177,14 +1168,14 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "b = true;\r\n" + "}\r\n" + "b = (i == 0 || i == 1) && j == 0;\r\n", - false); + false); } @Test public void testManualConvert() { decompileMethod("classic", "testManualConvert", "trace(\"String(this).length\");\r\n" + "trace(String(this).length);\r\n", - false); + false); } @Test @@ -1201,7 +1192,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "default:\r\n" + "jj = 3;\r\n" + "}\r\n", - false); + false); } @Test @@ -1217,7 +1208,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1226,7 +1217,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "return (param1 as TestClass2).attrib1 == 5;\r\n" + "};\r\n", - false); + false); } @Test @@ -1237,33 +1228,33 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "var b:* = ns::[name];\r\n" + "trace(b.c);\r\n" + "var c:* = myInternal::neco;\r\n", - false); + false); } @Test public void testNegate() { decompileMethod("classic", "testNegate", "var a:int = 5;\r\n" + "var b:int = ~a;\r\n", - false); + false); } @Test public void testNumberCall() { decompileMethod("classic", "testNumberCall", "var a:String = (5).toString();\r\n" + "var b:String = 5.2.toString();\r\n", - false); + false); } @Test public void testParamNames() { decompileMethod("classic", "testParamNames", "return firstp + secondp + thirdp;\r\n", - false); + false); } @Test public void testParamsCount() { decompileMethod("classic", "testParamsCount", "return firstp;\r\n", - false); + false); } @Test @@ -1280,7 +1271,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "a = 1 * 2 * 3;\r\n" + "a = 1 * 2 / 3;\r\n" + "trace(\"a=\" + a);\r\n", - false); + false); } @Test @@ -1290,7 +1281,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "var c:* = 3;\r\n" + "var d:* = a << (b >>> c);\r\n" + "var e:* = a << b >>> c;\r\n", - false); + false); } @Test @@ -1301,7 +1292,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "d.method(d.attrib * 5);\r\n" + "}\r\n", - false); + false); } @Test @@ -1310,14 +1301,14 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "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 public void testRest() { decompileMethod("classic", "testRest", "trace(\"firstRest:\" + restval[0]);\r\n" + "return firstp;\r\n", - false); + false); } @Test @@ -1327,7 +1318,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"is eight\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1336,7 +1327,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "this.traceIt(\"hello\" + 5 * 6);\r\n" + "this.traceIt(\"hello\" + (k - 1));\r\n" + "this.traceIt(\"hello\" + 5 + 6);\r\n", - false); + false); } @Test @@ -1346,7 +1337,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"backslash: \\\\ \");\r\n" + "trace(\"single quotes: \\'hello!\\'\");\r\n" + "trace(\"new line \\r\\n hello!\");\r\n", - false); + false); } @Test @@ -1365,7 +1356,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "case 89:\r\n" + "trace(\"eightynine\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1382,7 +1373,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "case TestSwitchComma.X, \"C\":\r\n" + "trace(\"is C\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1404,7 +1395,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "default:\r\n" + "trace(\"default clause\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1422,7 +1413,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "}\r\n" + "trace(\"B\");\r\n", - false); + false); } @Test @@ -1433,7 +1424,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "var d:* = 78;\r\n" + "var e:* = a == b ? (c == d ? 1 : 7) : 3;\r\n" + "trace(\"e=\" + e);\r\n", - false); + false); } @Test @@ -1458,7 +1449,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"Finally part\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1476,7 +1467,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "trace(\"in catch\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1504,7 +1495,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "{\r\n" + "return 4;\r\n" + "}\r\n", - false); + false); } @Test @@ -1547,7 +1538,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } @Test @@ -1581,7 +1572,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } @Test @@ -1592,14 +1583,14 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "var a:int = 5;\r\n" + "v[a * 8 - 39] = \"hi2\";\r\n" + "trace(v[0]);\r\n", - false); + false); } @Test public void testVector2() { decompileMethod("classic", "testVector2", "var a:Vector.> = new Vector.>();\r\n" + "var b:Vector. = new [10,20,30];\r\n", - false); + false); } @Test @@ -1613,7 +1604,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "a = 7;\r\n" + "b = 9;\r\n", - false); + false); } @Test @@ -1632,7 +1623,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "}\r\n" + "return \"B\";\r\n", - false); + false); } @Test @@ -1654,7 +1645,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "trace(\"hello2\");\r\n" + "}\r\n", - false); + false); } @Test @@ -1677,7 +1668,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "continue;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -1703,7 +1694,7 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "trace(\"after_try\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -1828,6 +1819,6 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "}\r\n" + "]]>;\r\n" + "testComment = ;\r\n", - false); + false); } } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java index cb05e8516..9c30f4d83 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileDecompileTest.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2010-2022 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ package com.jpexs.decompiler.flash.as3decompile; import com.jpexs.decompiler.flash.ActionScript3DecompileTestBase; @@ -54,7 +38,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -69,7 +53,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"catched exception: \" + e.message);\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -90,7 +74,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -107,7 +91,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "return 2;\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -137,7 +121,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -162,7 +146,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "continue;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -199,7 +183,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "a++;\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -220,7 +204,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "return \"OK\";\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -246,7 +230,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -271,7 +255,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "i++;\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -301,7 +285,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "i++;\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -324,7 +308,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -346,7 +330,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -372,7 +356,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -414,7 +398,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -443,7 +427,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in catch1c\");\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -480,7 +464,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "a++;\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -503,7 +487,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "trace(\"after\");\r\n" + "return -1;\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -526,7 +510,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -548,7 +532,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"after try\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -567,7 +551,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in finally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -589,7 +573,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "return \"hu\" + str;\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -619,7 +603,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"after\");\r\n" + "i++;\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -649,7 +633,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"after\");\r\n" + "i++;\r\n" + "}\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -672,7 +656,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in finally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -687,7 +671,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in finally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -719,7 +703,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "trace(\"after\");\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -755,7 +739,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "trace(\"after\");\r\n" + "return \"RETEXIT\";\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -787,7 +771,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in finally1\");\r\n" + "}\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -839,7 +823,7 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "}\r\n" + "trace(\"after0\");\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test(dataProvider = "swfNamesProvider") @@ -864,6 +848,6 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "trace(\"in finally\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java index 4fd117270..8da71e1d2 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3CrossCompileSwfToolsDecompileTest.java @@ -1,19 +1,3 @@ -/* - * Copyright (C) 2010-2022 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ package com.jpexs.decompiler.flash.as3decompile; import com.jpexs.decompiler.flash.ActionScript3DecompileTestBase; @@ -44,7 +28,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -60,7 +44,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"catched exception: \" + _loc1_.message);\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -81,7 +65,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -98,7 +82,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "return 2;\r\n", - false); + false); } @Test @@ -128,7 +112,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -153,7 +137,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "continue;\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -190,7 +174,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "_loc1_++;\r\n" + "}\r\n", - false); + false); } @Test @@ -211,7 +195,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "return \"OK\";\r\n", - false); + false); } @Test @@ -237,7 +221,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -263,7 +247,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "_loc1_++;\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -292,7 +276,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "_loc1_++;\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } @Test @@ -315,7 +299,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in catch\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -337,7 +321,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -363,7 +347,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -405,7 +389,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -434,7 +418,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in catch1c\");\r\n" + "}\r\n" + "}\r\n", - false); + false); } @Test @@ -471,7 +455,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "_loc1_++;\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -494,7 +478,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"after\");\r\n" + "return -1;\r\n", - false); + false); } @Test @@ -517,7 +501,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -543,7 +527,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"after try\");\r\n" + "}\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -567,7 +551,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"in finally\");\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -589,7 +573,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "return \"hu\" + _loc1_;\r\n" + "}\r\n", - false); + false); } @Test @@ -625,7 +609,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"after\");\r\n" + "_loc1_++;\r\n" + "}\r\n", - false); + false); } @Test @@ -655,7 +639,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"after\");\r\n" + "_loc1_++;\r\n" + "}\r\n", - false); + false); } @Test @@ -683,7 +667,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"in finally\");\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -700,7 +684,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"in finally\");\r\n" + "trace(\"after\");\r\n", - false); + false); } @Test @@ -738,7 +722,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in finally\");\r\n" + "trace(\"after\");\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test @@ -773,7 +757,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"after\");\r\n" + "return \"RETEXIT\";\r\n", - false); + false); } @Test @@ -814,7 +798,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"in finally1\");\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test @@ -881,7 +865,7 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "trace(\"in finally0\");\r\n" + "trace(\"after0\");\r\n" + "return \"RETFINAL\";\r\n", - false); + false); } @Test @@ -912,6 +896,6 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "}\r\n" + "trace(\"in finally\");\r\n" + "trace(\"after\");\r\n", - false); + false); } } diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf index 2564af4efe757a030b6d9593c5cd57336ce4c635..8d16f0c4d2687d0d558cbf38f501762883418786 100644 GIT binary patch literal 21010 zcmV($K;yqdS5qs%zW@Mu0lj?(U=+vI|IU_Mo$5(QLP#7Oa5S;%5~7=Oh+>)z#tj+W zolcxU(#bjrP#h;18~2V|Tyet%+qn0Ndq+|Lm$>)JIGPest0TVpgLj*zi=L~OqdrPz5OEAke zmV|>L|GEv{^?{P67H>E>tt?iNqsbei!zt*vy}2dO;cD}?2Bwdk<);pobL?Gn%(9U& zVpW!w6S;g{%`J`7M^@ETSC&s6S!NEsj3^j4cF>e(fv7WtIpTo>2QnRkuw-e;vRTWQ zAG!2!kKl29E=?1j$o=UtLBPxit$~g;fkwe0lnORMQ5l*X$P&^~f`9IrJP@kQ@E?a9 z!T&vLhMyc_l)rC=1!ldWW|%Vb@;}kP@1A(|75bMu^JPVDZfow87kiuA1l#iVj^@rl z1}9i)V{^E@#oIl2_3AaD)t#Z$je#br3gWB|23p#s_E1==s-8SFQts~zbtG1jE30a2 zm;0xz@^pmSeW8u3mUV>Iba-1s>%DEws}_3Kdza5$RafT;_*bBe9JR4pv84>dO`VJdZ?s-^AV6@W*Rzn*i@td2EZoG}%`Bb>oYBYEkR zn&WM0p+8*f@7% zdq)68p|)@iuN`XZY;NlcEW!X;1sG0bge!x7n)sC6*IfDv!mJ9)fwQ!H(MMY=7d8>E#=mF~t$gk7{k<9Z*kUp2=gCv1nB+S{;kl#G(^p(OTZu z{6I@f$VTH?(8S9YG|g=Z2l&h^Xo_d91x1ImP)7hHUD{!!!73e{ zfyR~IjuhT$o8LfhL7N|3!sll}TT63WpsuTpi$H?`7qnqrMYA~BEm_O`q4of$B+p*Z z#HWzQfl4lcS`=CXvD`x3+687_!)Ic#x2=ov+OP|Ca#mm548Ct$;|Xwn%%hfz!I;fh z7O2+9B@c(c1ai7@R$HhoiWVO`WgEm_5?JHy3}jLdOS)Qpfeu=oyy;TDBY9iE*Qniz z4UpI3N#35*iYLQ!u(Udj;*Nkn&=_d*2aMuq@+dx7$h3A0!dU5t2iAb?If)Mke7*{o zg9ZJabC1V>!_kbkH5e7vA*UVHXj@}oZ?G1JWJE!@Rxc--kv1vBVH-IMnm7el1UlNh z9ZP|X7qXZyFU$ca4#EXZoOcj2n3)ePnyTc5M}#37!^q?uw-U=L)WH!nqQ-*fasZsg zJKzbvTsek38CkF#L!N^kdH<0_B}Wd+CTlsCV*BFmWnTX}fUYR$1ku8)A+^HcK)AHE zyWK2Es95=16)O`eR{d7RD$biLg3aNjU7g|P#=sncnPGu%@HJmKVPh512Iy^R{#~Gh z4;Ql?*w{Y5xutnc(BR?-Gt3DEI{blDqq_jOms9Hq%un}X2=uVc5Kmcr5AtBE^+KKm zIx;AVUDqhhUeE>}_0pykFmm!O$PwNUMT~keb^%#Yq*ZYXY5o6$Uzn#(JJZd#PmuRXH9DI#c}EHaY`~1JcCFlT|O5 z{1sA7WtADPlxk|q&3KhmQ#&!G6RHBOJgIilWX|%O2`b(F5$_LmZBi)R9}a0dUgl$d z)+iGdSlDJDEqW`YPJgAtz}e-8&d}M>w&1Q3x2&9UDG_yIj4z4XF5mGfx+}w_i zP=^wruUK0nR!vMIz#1CbTILaJlQ~Nh0Yz>OyJpd6wnCpdkeqGJ;b0QSR!dN^KZWEb z>>3izMN+6OAmQ|u%hLhY_VTccD_Ss~U=T63_M!)n^@__h(-?tqk7J27yu zL2)P+odbYW98X(9t_m9uD>2O4)`JZ=qM?|(W1JQM1X9~Voj5pAW=dH2^_JEoAB^@j9U8q5+IdQ6>EF=>)F zDR@S055RON>0a>}?(!*K9F@9TLtWvN$bpG9NfqT)$zi~ViVtK`<}R({Vm)GnA>kgj z8H$-W2`jT=vRGY}O6DZvkU6qH4HGr=_Jd7B%Ti8+hEXV7jL0~_wj@o1SsPRQcw5qm^&%!1sk*#2Icya@8iEGu>`)EFVxtbf;f)oF!Uh8Y2VU~ zl~W;3oK%0X*)Sr}7La*Uh8eb1YHaqWdSE$#H4w+fG{ce!6G}_i28n{RVcdBOW}M38 zoc*Y0pftc?j!KfF$ryqYP}zF9y(=6PgUyaafm_gDRv68sU~^@1HXJMo;FJKYipYhHaNc2B8Nu9 zvJOZGeN-IG05=MNHHNn7fs5idY`ZsdP{jYs!i5Chbbn_%Bf&hmgg z4`Y+CQKk_qk=+uv2TE)AQHvL`H8S0=*?9q7>&V_oTZv2#4LR?Irqz?bMs zqI%qT*9nwkFD1`&#TxP}b(axh? z0-I89$1DwZ`G`V3R3Gc@>I{~`h)b7Quxhof35?a^Mha76J1kZK3v6RtUF~3y!14`E z%Z=9KT#?F={#SH$1DWGX!fTY`F1c0Jfp!$kSY~Jq9{R z^-3U$(Ha>re@<@C%Aa^DMk=!H6_xT zNb+w;(Si$^ws_bB@c^$xOfYMCDQ2&+C2&MI&_Q=OZQ6fijR6Lpc;6ZipA3neiDT}^ zQM}fF$wIWfZfF`e-b8(2nD;i$W%dzaZ5T{p{cUdQj!#EeqI59HsvDIk-ii1{b*fnAxkY!~qXxk9P zVVH>4zzYFO!G)Q3;l>_oqR|x&wFX?&0o~ML?UqJi+0oYM8I8R#MdQZG6%IghU?DfU zS|CSVp{8g@aec(P;GFiKm%bJg1_ngSY~hkT5GTuii;R)UiOxZMClQneU}DfE)DlH8O=Mz28vtrob3D(|e1SXS z2Nm+I0b~Qsn^X(zF4Gp+f zHE7u!;`phq80%wscQs?j@~zce0Qzq!K(sTqnK(+sQ^4H93@XHGkBjwcF2bl(jKeh2 zI97RpNkFHINUq{Q(AgFK4Ky$&YrS#5LCOgG+U=HwAH^hodHiqI2V`R6D*LT&`bn$U z6#WOmN_5`P6eESp$ROP+aj%b1zcJ+J9y>&)xrSHS?Cu4P=3>Nxh$&Y6_;!FvNt8q} zT*g7NaRI2g0vlmphs)8jm{25c?uX*PU8@6iGTnu}YJkpTd&MEHv146R2C5WWa8Xtu zPKYo-tcw$(<#v)6W(7l68)xoGvCjHW`v8pw*jOWQ$H&x$xCJu6AWLxrPWtCqZ7hgs z-Hsy|M;Pfu6F(zeU(Yr3X=SFGzA~z!8z%(gVxXxb)avrn8Dy%F9TiFAPcTmsxQP!K z+a1}^&1xs|LcqwIHln1&#g8?7tAp}VQZgesmJq|21;?s`eobQ-oD9Q5#3hT4Z98bFUSG*xK9(^)@+| z2&PvQz{tMo(L~YN(YeYAd8k)st-zv25-w@Eb!cK%G{)04Qn-1eOfG=wT!({UntbJxbBkkjc?McyV0v=6_w&hYqRaH7H4P5zv zlX^g^s;N=U45_-RI+L!u;MR?o14Im|rebn(G?Iw=BesR@QEVJtZC3bMF=d5U8r)yD z@ciW9h!fs|CQJ`*pI{7bZN^iqHk|y$N#)H+*){q-906=wsBJ|@S3t$P5xm0)Bu5@u zSPxGZ!z21JB<034Bekl@uBU|38=tGUFsmm=dI>?Kdzd+%- zB7Xz|$CW@w6Bb5Zj3*5jAnfw3*w!m5lS7Xea_1xmP~77y07{PkQpC@WY$kRt zxmQDSCujL`r*ptz8`#W@?>)OG2+k(z@k5x6BCVQL6uZdU7kX_CJgi)NyUM`{7B7i z?+E#E(cvPPE`PFt(jyQS6xXZ~!|<@<>SgnKSBwl+eL3=~7d%+mmXsAVFgzeRuD|9q za9we7MRHakz!?vXl5@N_OiiSwWF6lX!VF9q$*oNzMrQcnz!-+1B{;>k$~Bmt>$U`3 zW+m5Hqt@6QJl2Pn*A{SPq{1TwZ!tzBN07$7F9)(V82_+R#P({jy+&-Gm|%~Mytq!zUO|f_0s+{h zK$+y8Tgh4R#@m0uNzRIgK%t)yK>w0&My;(0uf*CKlVh=uJ;*0$m6Iz5;Hu~kPb7!W zqum38I6jYNtG+}G7jFjoH=v{KKou#^biG{= zbG`k|nh|f@fh$D(bL0H_4de&#>o*D@r7Iw3CLZ*g@W?6F(439u{+JvKh`#Qf2Mr!v4ZJ;!B?#j3T{* zP;ts?BsXbtifpg|8Tb4Sq@m0Kp5K`zaU2HK8Nb7moTX><4czR|mpigYdFv0xBu7u_4~OQaosRoeMo`I5 zHe?UxhUx(u#M=gwCfa2hovS%q8-e0Cz%9CS4wf+teP3+pW3b{FKj9bWf zdWIWdxdOJr0rm@{G&#%M=o@IkJkS`}sL;VUtW21IJ8?YH?3ge?DJe1IB_+s*=Y@hl zo^QrWN>V3G!08(P%lOrxNMyo<)RK}&BAQ!Ll0v>4fe91pd1S(bKs|p!J7EG3N=j^i z0qWRFN+{qjZx(Z(*vc`9yO#N5I+fgKA!>#dC)J2GHE|6qeyd@HwIQA~!zxjZpHYFh zAzKQE;f{lx0ZxUpCL*4V48V;3hS;fE8gd+r- z%AGlAk=0Zs?PYarR;psN0+{ypb!)1)HUqV;LaMB&{69dUvL6bS90hUG!S`T@P}!W& z%E*jj;b6FU0AEvCE>52Ge=zE}9xFJH72^M!+2B0oe3o(nQ!Zx8bu9k}ru@hXeq@C|GUe|q|0Gd4P0YVRRJMx+ z+r`4|qH?pS+%6W}E*9P{DtCy=W1{lBSn#}9_`ImRAS!#sg1utlUQyX6DnE(J0kPmG zu@I5-B;_(md0Z-ZTq=BA8hnECgrvMC6}%=Dz9uQJOUheP%6pRXwN&u6RQR=|d?P8p zO3D?ovRy9NE*EZ>m0M)x9=YHix$quYxmQkkKvo`-3m%dSACi@aW#t)Jc~w?kmkVB( z3tyL&J#xVwxp0rH?3MH1k@Me`m5*iRQ@P+%x$sk2`CKmeTrT`vR=$vxFJMkW6qCFOo4&z_c^k*Q=k#B6(B{$Ruk#B8Y$ zsiDqcNDW8KHDV-UqYxWCW-Mak5F1}S0Wl4+lCpBdN)dyzN~RsZ?3HbwG;t0eJM{MPhMcfe&Qir}Rm@SvL8_9gD*381SXByCWr(U2 zs!EZn3{@4Usti+=;i}?Nl@Y2kQdLH&id$7itI8Nv8LKMeRAs!X6syVvRnb(XL{&;v zrA$@IRi#2zDpjRQRjO5`MpY)NO0B9)QkBW7GDTIUs>(D~nXW1`ROJv=nW-wXRAsiR z%uyAOs?1fDI#rpcD)UukfvPN2l|xl!k*X|Kl_jdOR8^L#%3-QajLRfRT@;qt13QK@vBOsssvP}NmbUUN>EjrRb{QJ ztW%X1RcTd~HdP6!O1r8YuPPm?5>{=Us=8iH*{Iror`mt7+D}yNe^68ZsHUC-YHnt# zd@@s|Q}DM1f2ShvH2j^zitxRVsW}(n?-Il>#owRscLn~g!rwJa9ds?iTk-cIQ?p(| z_&NUeGd1^n<~)tDGx)c=NL0mtpx_s#4%sBCS?Pc(s)eVDYWA6;eX}S58me4~zl-tr zC;VM5szuj}>d+g-BAI#umf1VRB1IMNMd|(cdq`B>k0N{=9X=}-+0?8Tk?IvQ_lRny zpxWOMRr{Nws)}!knQx;vRV|_FKjRN!>A%FH6tx1wvR@*pm6rmAo%p*8e|O{WUi{sU zzXzovdr_)7?M+F|x&cFcM^dN1i~JAq_c7w1BK%Uy`bx^SZ)a(0)+0dX7N(~BQ&LlY zk<{5=0`PgVsv@l-J?C;+opY6}dTx}9($(y{<)RGLhB6z-X!}Jf%2W^g6$1rf55H6b zVX}&{Fa`(kcN96)WBwwm$Kp@?P*zv*@@)Hua&}RU+IS=2>av>kD)8KmzaJ3)hpYzB zZ`LM7&AOQt4N}*hrl{*Km5OrFbFSL9O;JNPfS@-k>Y`imcN^je+wWG?7@j{(~hb~;N>$4~!?JdbsEpTrX?%!!hcVEO%eKWg+ZMr2|%ud2g zUdlG@V8Uj04JshGmM5dFsjcPTf6M>|mIi|D|0F~Bk5Ky6_+Mn4&HlkevAetbpESrs zko_{^hfdT#RorxgNu2@PUd%2uCNf6B0qezze+!H58~^`1ipSo7H~=ydQRA5eVEtMq zW`OTDv(wn7kE{(T&oZ|Eg2w%b{+~0te+Jk@lwxobaF8%SF!iRh*;&%r(Y5!R1nIxb zc-8*k62SZ>{QngVsJ9c%F8cxcA7_wYIE`(-fl=fy2{hpJewKZR?9J?Bd~Kf&R3kP% z#1b&D^#9|3Y)xHlH2X{FsbAOqGFbQV{~N~ppKw7x5y){}|KDQFS;cmhY}Sti|KpMN z8#-kqt}pc78AZ%eh~JjKjv4=>*+1Quo-Rv@lxj=0fe{{;pOBxFpOSaUPg@b?*l%XP zTKWQngMt3RB}Jq+0o&$>@}_4KFdh)$f#j;lrP+_N5q@VS$AAMDrHh%+y_IcJfWt|O zRR~7W8W4eKDMk9#FiUOQsN=YQwi^;MHnW?Nvzgt>zqdu>acy|ic3(n6;V%i}GkS_| zXXNz5!P3&KLue&d^x2@Y*_oP(@N|aH8T8popUdcTIeo6A&(-wVMxQ(Ab1!`!rO)H^ zd4fJK)8`fX?558<^m&&)@6+dF`snoeD}8>V&%fw%vWU+q^w~n6t@OE?KG)Fa3Hm%m zpMTQl7yA54pRE!;7t!Zt`rJaF+v#&BeeR*pee`*NJ`YJ4WUx^xd)Wsl{Iuh|A6d%mee26%#8->wF^ri>tPq*?tY`u<8>xbirPU+eEF#{-GA=?dYnbyWWVKT9I+k0D z`0*4Ev5awucTqgdhD}5KchqbH!*P-c8yk@E2P*tMOFb6x&5RP87|YK^>QtUOg|Xow zq|RjGwUCQjap}4&Vz4?gWJ%Vr(SPeweXQcM*R*&e)wMeceNl-o@KK2`Gz@dXA@_K~IyB zdWolA03B8!^*SR8zQR}*pbM|EsmSZ&HF_8uorlyup4x*N_YtT!nXnYWJ3RMo#?lT$ z>I0s757Zco)F(Xk5o2TLAoT@Lea6`MR;0dW(nG*>3yy5s!)B!95k$5kr*trC=)C^7 zjFlgQ)b~8~SImeTseka)kD%9Vq<-P4pBYP^iPT9V&Gx?-tC)|}>7w!!QAA*s$URwP zRl7j9Q$$w%G{P++t9b_DsUn-W3boJXZO;_h@H(W<=c#i=R(l9i7xUDGA{$YR)Sr0j zQjtwsi`12(a3q3lJo9RiO`U?&4Lo(7$kLjSx|yf8i)?fWQnw*>m~gAe2CYWwPF{A0 z$gij{)Z-${Zbs^9QOH2>JkNX71>}XQXliwhd?uk)MuiQir_1r`Gv?b4n=A|Pkke@*~^joUL=P5 z4#WlX2!9nPBJUr(#*ZRP9goy6JoPgGEJSLP#HSTwEkNoNp4u$2jCY6`Pn8&#E26|a z)kvSoi%*x>a1E(*dFpJ5&1^yHLY_KbVsl3zbqP;hB(d~mNL|iTmm&2jb$gX$h%0nE z?-Q`e6%w023i;RaYS&0?a3)gQB^t@~5=;FOBe_AEfxO#zjhiJlCBT(r=Hv9c7A(JV&LV++;a0zZ< zoS+HiLbWhSm?q2=Ji>fok+4iyDI6mlC-{Y+&?2-$^Y6wf@gzo)YCO~H14azg&5hgswgr}GQUHL`uJ`;MGuon!E(SfJI$V~VgoXe#9O{rA; zfGL$mJ!s}k*w2K&G2!n_fDL7nD4Zq=XNkgjqHvKYTqX)vh{81@dzIOQZb`ac6mAlQ z9ip&P6z&m)2Sni!QFuZWc8S7sqVSR^yec6PetKNQTSFA{w4~4 z7lnU{!U0h@SrWEL!WoiqjwD`F6On+Lj%JewWu5gbgaV;&EtURub8dxRV&En!{{ z^dISPs2oBrla68m50oNtmAK9$q&GHE2 zm~tZ!xyi15HkPm$Ab63t7c| zB3tZ%Dk(jL&DbL>V$x&SRXxx!rKd#J>=BlTlczs}J;VbYQ+h#Ug&tuUlU@;7kw-X; zW%r0|s7E-QNqexjdZ2nrZ;H(25mvBq?}+RO57bcU1CcpB!b&E6BC?KUAAs3WVT1}GwD)ET;_p_D}9OmHKW7?02bs$j?RKpB>vlEmpAp^fHI z7DCTU5WgOwoh^P@f|&I{MPB;4#NI%xgRR&rv462TL71Mxj@T!$SCAWKi{F;mM~HQb zE026vV)q*Q(NXV7>}BM3v7$kT^WkgpG?V6g6@pg)33W{_$1w-}G6gc%U6b#eH zQZQT}M}bQpPr(Sin1Ye|1PVs!8U=2>go4p}DFtKnG784(tv-{2 zN%|}bChM~)n4-_2V5;t+V46Ocg6Vo41vB({6da<@r(mYOfPz{2LJDTB}gXuOCLi0{w6b7V66>I8P8 zM^kW^ehdYN>&H^CTwg`O3ca3!BlP1aSgEh3;7GlJf}?aV1xM>X3XakJ6dbEJQm{%7 zP*AToQE;5ThJw|4kb(xinF6oAmI9x?jsm~lLP4Y6Nq--E>ktO<4G?(%@paC~_~M|nfIyrHwa zp{u+>DlR`taPogaS`3OJ32Y43!kKJ8!xkm%XLL2zu%S^;(avSPZlP)8wpna^k8Yn2 zGn9ZbhGr_QA=~b9EIFiPfD14gkrzV`$wORf4tWw0hdZ-( z$kT`nav$A0JA*4xd9aMJU&(;*eI~*q_88Nf;`lv~=)nxz zcj&1(z_y2`c!!>zlVz}5rglF^Zn2Tf)*fIz2Iu9t)g5|Hq+YJ}Ag?#ts5e-9h$qvG zWD(B#7(P+PsXao`9yi+tBzoMbc_;D_6+}if#4@6M>xdL*a3n@lBw_{@U_g&qn3&H4 zcs3P0>#$>FdipLf=+h#NF!lE09N28f_qy56?2kasEVsG`#I^55heIRKofhbYR_Hco z(1*&yC0SrTK!4H#-B?0;$`~x0vA|%=J`gi!oFMe-Svk%K{hp%H_knOGX>zq)oKhJ^ zg+lFVO6o)Ts&GZn8eu_em=!J687u`_qlhg}p=o|5ir2GfM@!gbP`9#Ex92S2jE3Aa zM-_U}M|QrEoo67rOVrbP-Adkb2M##QArxxQ5zaKb zL$&7-1v2gk=A$i`kF;W*;tZCd@>p3G#AAW@3nt=Ge1Vrer<&L@&8^<9rx7^`j)|k5 zL7K$w@?(VJeZ}PyTA7myO_EY{uz?R7S2Ou!&<00KQ&f((pf$#dmfaaF2U-(oo;MRg zUj<$yl=d?s=zjJZWF-kjJ4m%<4+%&j<|4k9GC-#tpe81?2Y5b*L{@g0fp)I;I-lJ< zYMk%De=V6ygaUKYhwPI2^nAB7@3R93c8R?hb86lWzB;rB-X#{ii>-L4I)fF!yNvKY zkMQn^G6F1)f^G+ErfN5^EqjSGR}yDt?sJrySY&Ixgq&lFnay7cmP-CPt2g9^IXbZf`BZH{045HLJh%{%g5|yh+VBboE z*o#5X4HxZ4pfo;?GdQKw!$oVcmq2bV7X-wN|JOt!MiOUTgJJgZ0UT;1bF?>jvcgE_ zX>ao6NSd<(5^M$8BaEV<+FMj)4CL)d)TRA}qL41BB*NPHBvnVoS7RAprFDGi&R`YB zS1V$YiZQ(RqH`46he-(U!LqbrqB76#y)L{DEha^}pKR%VqP6=BXRsZWrxN*&LiZn- z-J7z}F`bhxjRbyL&L|phhC2oPn(d}|Hsxn$4~>xJ!^nUKYadZmw>zHTW1SX3X1WEL zDOO}Moxw&RbBLq}Yz2_{1ju~K*AY(8SVuQJMB zS7-*M>T4_tS|7c7YS=AatEcXBfYE`-!SSVMf=vI`)=Ld-gGJws5C#);{r>M zb=DrUok0&OA4+?E4SM{}9BFLJ&okF|YIHB}x?r=p7k|trcToh=Vhf~&R!BL{;BY`% zDr4JO3`l>A(v%pv;WS47@77b6v*m2Iu<3NRhi5EjZfQ0vb_?!Q@0kdhJC}!|dla&XO#jvm0| zh?!%G&td1n05|Pq1h9z$ed3N|EqEPe#VgMl44_Uua@io@b-LJaJ_B!QXNXHLV07X* zF4E6xOFs=HMn>=!#%Td-&_OG2{BAwFxamUHb%FOn0>6p?LVq_^<$PywUE|CK@A*{b zlW;=0nnd|o@aa4ogQ33ovb%v{3&Gy8QrfhY?ZFX4>G8{sW{}D!`;=i@_V()O`y7=f z=`yu*MSzZK+1c88JRRA=a<%h$ns%uSzDq$%!G1-%)GLS$itJLf$OdZ{P~}Ql$v&TR zy+1;NMhgkNR#Faj1}9)lO_C~zofy(Z7?Qz4q#8iVLKU!&-9yr0ubx2yCDSeJgcO0S z)g64x?}7H0f)q|Z#eR7{7_IIiCS-pC3=5!M4RMP&N6p7J2OXTVhTmrJhCa+K&u2rA z^YN))LulGL3i`+~VC!IH0L_*G1grxna0cr!fOVuTawXvsjDQY;5v6OdV~I)c$SI~N z%DVkeF$>MI$SEeGJq*?^<#SPtj?GieEf^p_)!a$5LZ_O0Xj14@^Ds0A%oXrzi43CE zGKjU-K@4#Qk3!`Tt~&R{JN4ufsjY9PD~2w%%r0xk-%xLunr!-kjYqBS7*?xU%<_xa>uwCQE=1y?D_ z*VbTry^%?9B|qo+XeO{Ezg@w zD*m=ffURVEdT^?T?5O(_!!ciNx}0?tU*J#i*?g)m#d|q6Z=*tLtilDw@#Tt9o*paj zif?a}X2eS43vp-znH;^?vGzh)Vf*x)K7il6k2Z~sG+44K+$8FQ`S}UgzlL=DorMnT zt#lab3{FGy-_x#eG@9QMCBv5wV22CYbRbWq139$wUThv& zJM`S_KTx~?#uV^nrn@q49|S25KK#%&G|uQW%rrVhMEeNS=mh5Ab={`8##U;GYoBdM zC!}+cI|H#h5OcaS5hKyvFG*ib^%E0obhCT%&g5}F6QwF;A z$?hR}HyWDu3@9&P)jo_J;QQPud4J%t4_CqFjKP}+@hID!l`vx?oWX3&81x^mK0a-k zu88`0K7&*c=V3aZ7LP36TV8)X>+zE5^jR*vp99m(ya3VxDq}C~4-MBt6hL8j3z<0F zV}(!#RDmY0^Ub3LEs!bqdT2}Vc)^{uiR)G?uIDA-I?@@m1J{e0lrD(xkx+OE=)TNx zz>OFbs#jqRg<%3?+0S0b*^(BIg70q8h9#u+h+F(h!*=MSTAv7t+mGL-r)hr{x8cCG zo$bRRtLY}@xAp0cCYW)5iVPtR_;mFMLk+~~(T^xGSDFb(RvKaC%cd?`NrsA7NW z(1zQX_7^c1HaB0I&+be0-p-trDfVm}k9=uC2T=P1^!g#E^GBe0kDjs@Oz$W$<*uopkwDDUK8_QukfZw?D%JAa zuvt-s9PJZgTYb=2eNYbQ)vM=`5(stlQ?Yj&DSkf5P&Qy)^Vy(n6ch~QLUqP$2vs;Y zm_vZiS^N;LOc=swXK)yXa4nNE1o2nmn9nSf>1XgKU{l3W z30BKOP%2&Wsq=j)^L=UaX(Z#dFZf7`wJ*i_;=HbIBH_I2aLWNAUKb_e^;RNoOCaJH zXYe=>@kU0+pbpURE0c!iR_uUo3BjEPld@r4?s1FJm=ul4(U`I`2kIp(9ZxZiW~TNv zp$S8wTN#82C#5wt?^aTaK}zWKz}KAbo2;nbkbvq~XV4E+Z(*d@{}HHuW0`Kg5YV{{ zi&84>o~b#|%yGJM+bq`pZwZ}Y+V(XK^-NEcC6{9g*T3%pOS6TTG0L>BVlnQ_qc*<{Jj{zT#}7w7{La zQ!j{=78<70KHV9~8Ls_E1n$*GUZRhTWV*G#Qzk|Q4=0lf_gJZLX95+9oxyz6hcgM- zc{zyi4=X#n7n6l`2-d#4j83rWWP^kuGSjV$eqr(rd-SX_30Ed%@*e2kwmo`InS#?t zBY4%g6++)|wK8#m|7!e<+?#;Q1ZQvw>OaJ5kGcdmQbN(l!6D8z(7wsw*PTHs*qR-hnKR<5?0vU=-xGCi+uC;Yt-qp<02<`%bk z?`HLPF@5mDyI}6Q%Mi^4+R4(pbFm8~pxf&cpzi}$=R9^B9=$#$l0+oG zICH)pWtRDZx13o3=i>N@e2`CM?1EHt1_zl|pAu*AE>fDGXofN*j8F?t<^LkQ30!N$15) zA7oMv40t3YVC|vIjOeXSmUgZLdhe3-jK1DH9Ni7JG$tv>Q4pCVB{E5RfoX-9$Cezs znorM*QM_NW;{ALA-sR5VWZ?Y@r+hW=J|B3)<&cg~DSOD&cY(AN;$b%~fX)zc`+Ds* zBblaM$P3W;Rld!^h{qe#eOJWVheCKvniPE9ipk3fm{d4}D^S0Ove{5{cCmzR?2Qfg z68Ay0D97E)CV1~9Mu88e*=e7()7=T3Ryu=IQGX9(DFVBIHd_Oq)Y<@d8|aO<$2ZNo(BDRj!RySDgkbY%Cdz(VMRdgI!3AA^h=w@=S>Z8{!$ z4o;A$=>UnSZnj%RtsM6+ezpESrVm zMer~+3*NLA{F#q2wveiv!8~&zRXc)toYpsR zTHgp-H{jYPMcXcE&$8L#9!l9GseP16)o!BGf=ux=9w$Bg{U|0MSTT7w0h5W&;9;o$ z5#P4Yp=rMrsE`f^gg7e3a@=PaMz97ky`B4DI;C?iRwb-e*e}E#v0EJT=GcKlG;Q8e zM5oC%c5H_Xwbk6?^UQ7f0_qV<_%>q+7ihOh{6gmA=rBI94&%dwVbnT!3~Sx*l#KmuhoNl1i(!YMmGmKR zJzY`2ec7DfFRbW%nt;wEXK)Vce+>^{<67AOcHnxYKtQB2oy4`F>i#LT=*?J>%G z7@4kBibt;!a&Y5E>5*I;e@^0#H8{P!!Fu^sLALfh^5{bQu881% z0UZGJ{wSI8QU&qoLjNWK)hW*4VATIBsWYq*sJ;kP|BE#&69>rTaka!)z_~az!4{m0 zlY^T%Ak)iI_}7jTJ@ktV?Ip>lz-$L#a8EaR01s#4k^3$Ixv9?JF{qEu7-UD|FVn&B3;9*XLjydowd3m1F> zav*NWo;`vel)%3j$SB=`0zy4U>y>(79eIo!BFV!223G^%Vs8!uFMi^O@k7Eera6Od z4C7}KRs5jdCz&c?y7p(x*La8m91s(%{SoV^fx;fDXI{hMd>Pf5V4&DbML3=AF%R)F z1PV1O)b>$HPwb#BOY@|Zydh)+O__QK?cFKI9EYPOUJ95a!E2=f_7Ms0_>ugSFp}xc z;B1WK0PVrT@bBI>B?Pg;agSp)JPv~CX^jn!8|&*|v;f43;HtMJZkKujcBv<#H=tyf z(o<&Q{?W8di49L;avB?+;LXJ+fXZgPGl3Zj)+oGXFp)e-v>^E_M-rR3xi8Id24?~w z?ranjDWH6^C}C6H08~C7kioy;dotOicI#<%yPyEeyY=+Cr%4mmGko-Xxw!s0HlgV` zwtJSa$EVQNn`z|xRiCZ?d4{V6ThsIWMh4DQO)t>WZFq|54)TjQh2u;|h|eWGuVOmX zy)8V8JOGhZsC^|N?^F?N%^WO1xbnJ6ilFO30n`CJFiDw9OmZnn_SGxUqb5K+V%=gUaIw0Pdn6q=X z6~8kQ@SEujt^$7N5`N4J{Qf$?d_)WZDI{g=P+-#B@*R;qCFKqS^FDHcNsBl>WN3dQ zbR*khw)QHQ7#3G3*KP&5a>I+@Z!%_N^1D@sJB8{J*XKmIUN*V@CCq9!@xBD! zhlVY8(+eJRBo|vpazVmKW;=t2U?i7{Fs`zxK=&UQ%e5HQem3w$9fH{7^(-hWH_|J=n-=Z%QD@<$Z^OJm@&7oTy2v~oG}8s zC|N`dw=hzrxLcT8g`E>hRNs)-xmdp@I^u2C5nq*n>s)8>NZ@)Me`CNesZWxPZQiof zpe68NBNlXR0i57YjpR{H767d(%{IBcqc+nllNEPYxFW6$ap${O-VK zP;R(M5Er+FA7R+SkGPoO0$-r_i6&w28aZAH-JU?01W4|N6?qtA!AG#Q6JFED46?}cP?$8HxVKlpBk1~^uj z0Py@e9>7Bh02VoeHK_kM2XHF!%!Po!PbCmh5T~%XM|FbS+hH?u8S_o|0GK#Bqsq5q z=Ykm-XFN9FQBJ4RLGIYaLF(-}QK!sZMw@){h|cG23fv-JBSTI3<#emqVDQ}3#Q#Yv z{*NW#zt|a^1pJ@owYW!-Y-}*Qcn)na7s(B;^9=@(-Npv zcruezgV!lnpVPHV__A=DY;O2&6DK>gOQ{50p5TX*t6fF~@qRc|KcBPqJTY(7Sm9ij zHw&VJ-q)JL#*_H?X?rFC;ib-C1`vKx#DeCp3H}tBHFB4SwNg*p#pnV6?2(>>C535H zdaeuaabQy?Q*+O?Vc3G6Mx8vjJ?}Nh<-wQ;fu8r87~mOxJO(c$V6e;?ECdF)yG1Qp zQ&+?D)n4C=Kk&FX!73I=VJS0B)`&?T|YPR~Y=7pUjAIM3K$i6zN1 zmL`SV!jYtCo_4*_ARpIS@FJkR!P*T5o_POk;)x$2h$mA|0-lFEgF}JmUQvcnXab%$ z1J74r{L@p7<7ryt)QPKhI-dR+Qv$DCI-XJ#79cvF{uzhSeLZ^}kk$6xy?vwfEN>q_ zhQjk*+TGM=9707Y`#nxyyv;Vzd&7#}o&@xkJA_8u6r=p5t-l2QPnfbAy7E#{gtK^L%~aUX7$ zz@52~Ei~V>Vwp2B#E=I>^&&%g>50meUblF=d2t0rX+6$j@bB=+d4@CO+tI<}*B|2N z=FNn`uW$xk82r1G&8A`Ow{d1nF}yPfvR%8Kcz~j*+8vQ-nzl0%g`1(l5O@b~Qv7`@ z(03Am9^nig0iYj}TE$K#ir)o_<9Ng=%N-%$4*)9D#v8F@V8s@Ht%O=ditslH^ zgdJG)P;^Y>Kei(OK?3qCok1s%|BTlnX?wpZZ9nBXqj`?5RN%Gc{c^)T2wNU`gXt=d z;5QXg(EgKzZjW>ZgUJ4ZOEVJL4}v5_0C+0^+qdX88NV-J;)tKo<*e#}dDoq0J^W@x55M?{1`{5Bz9fF2KP13A z))|}#ct49|%l{qVy#RPIFK9zih85lF3r$i1W^KbEdJ1HK=@1R(bSt?~_4^sSe@0QpZ>+?l{8IwTtDHe1^S|(`5XL*ymrW8G z0*we&hwFqb*d)u+c#O>Y__+#`BAX;j_rE4|U+)YqME%W@lq!f%(eix_{ojPf85u9Va z@4*cT!`}lpB$Z2`bZs}$1ie|@nPj6k!<|Wq?=6G(Cc~*o;l07BiF%W{17>E#-Qi@= z$?$bN#X9sY(SlR01t&>lT#DWP9On!cm{zvc&fq(=kDpFe_y*q-CsR>yMzqs2t(~66 zJB_{hZEyywQU7d-oPaK&8}(kxL`K}kwsUE@gI}Ay&fUhIWi~zyDy+D0^ueJ6a-5vV zY~-tzs`be}+@-;Z40cv|o8d&JJ6!%0(u=T{z(NSsi2O10sRKNAJBRi$cq+oesuz;5 zEsShhMdqmo{yaVzx9ib68E5}HnGwd0*4OktJkszw*`FF=h;+jv4bEp^h_s;%A4EOU z(tWAEH1CIC1$!#@NJ|Hr`NSc4>-bKO-&Qea?_4WA&q|=D*BR76&+{cZ15F1x-vl|| z;$rb_Is<(K(k%Q42Gx()p8Ai$iVHtR;$t#g>gn8z8e4N{@z&Nbuj5x_Ovsm5 zA#Y89>~{u70PlA(%bdtdj-k6QAvNpbyBOF^rjn3dQ za}@=g!A}YBH4-)^wif+=hW-sxo#loDR7||y_#$?_K~eL1x!aa$rjd;ZjwRbO^mg~O6!w2pN%(nG4oyzD)Nf(F?yei3t2VXCirEn+w4$TcU zPrICm3=D4Ic#;kMD;Yk&->f3+JnPG~rhmU*QVlD_mjdd_nyc3kn95zsXy;Ar~#v zweRI^Jf&yMycL#T(*%q)mD7l>F_eaHaZTR{fE524PN(w)=_?4)%}n?P;ugWThS~RK z;ySSk118{m%J(xI8$n*}@A8%&IP${CdDsvnUS_|&t(~at8<-c9g ze~YbXikd6>Z;=&kTIol@R^y0T>2t_RkDt{t5q;E(=tBtvZ*d040J+DBKx_(-+XCcH zC5ui9cSEp;OXTN@hC@rh5d!BkELygQUIpTaA?|Td#T>Up#xnejmkIJoE6B$ZK(;!A zb5Vbnq@)V$T?H`D0?ZgoS$%xZR_Ne)4laCg{=x1{LW4wYhIX!k<)UZyTu{7u56{Zd z&f{5*9(r73| zYQQnRyZRrPK5XF+bR9`l7_MDHO%R0+;woyUT6F2adDTm@MR=kX7KmGW6+=R6Rh;v=976)|0}D*kCJbz|Ap24f^Z9|li8$2 z!X-EdG73NBXkZRJU|u_&j>Ek?FN@<=|4%rr*1;74`F-(qN8o+}dHA6~bCi3m^n0Dt z51p7q>u?6&pn>n@)hLD^7&M#iiziSx_zIQ&h1Vk+$AgMtQO2(kn)TmK=)2Py{D|7T z%lpYjn}-!$a;L_;1>dI@{3pjA<&G~Y+GE5(IG8*}3d;x4u0OPn;=Ke&UC!Xk1nJ{w ze@~kIJ!SUy6!rH>q?hlWB=qB~|IY00?VajLmSkD-nX`Rv(yH5*dp*kqH?T3y z!n!-1d@^e2B-sujF~wjy4xLbp=@>A*SJMLoOTsoKgx(=ul8}&w|KB&eS0%#llMnY7 z+)mwjZ{ECl^XAQ)^(IOAP?EB4mZU-^d2@zIlJx5#Jxr2j%-+=6;_eA{hMU{lW{#>V zuN>u`Ju7WSXJgZ}BfWKQl(vPZAvJSUsH>}ET1CaijT_51)|9t*uCJ(?I(2GAWpzb$ zbs1`ug*Uf#`8Jicg-4H?mFC8uXvG^02RfTOy3oGWT4NyESVwnfi)gAbP!Vhiwg%g} z!WC8JRimt`zHqE=Te#fU*zOOO2ijXJP*71_SygR863`k0)0)~lTYX)#d>tJv%>f_5 ztk_f*4z&kP-015GmNm8b!l4-zv5Eps@iH2mhK4(uTY{bLHeYLS=BT*=YG9SX-aX$c z8xMUtKKXm9&mQ#|JuP9qN zch#z+R~+e;yw1<%8PZdE8y}Y>jEvM8>|7sgl$=tzWRp~eHx6ZMQpQzR(%-jFp$7im zpKXSPbIfqK722)v``Jf{zvr#+li9DmN`HA)xyK48&Us!{n%kPYlx4o=Hp#ZCqqDgy zm?;QW-q;-OXz^_xx^CV2_H|wD>l%YiR29To7Yep?$Q|urxn|pOj|?LEG>=Cw+_)CS)29=n<-RZr4(SY{nc#vRaL>}_a96M`*qPyLYz#K8 zZeP{qTOU+KQHI%>AXN)1J?+hnYM4r$sG9KZ(A9uPgWn@KXm02FZo!x;;StUhrI9?5 zn(u3AS=t`(wK%D4zOO3~s%vgT=H@h!5dx;w1<`1*ac(%=yuM8|YG#AET7sJvZ0hI? zqNu$soGWU#w{K1+Y&WE!Io-)2*rGzq7UI5df6Ln z_cwKi&51G0%xUsMUD%0wlC>!?a)MCd#9jKU3=%;wnotgqVqa~z7s_oNX)lrAkaX1 zfiDmeG_&F>{2PLSuDP9^zRg8elT^jZ?&|7n_IGy$Mfa^Yjtq8nceX{^TiD*!F6f5R z#nIfwZHt>C7%Xlx--xAGZEVI6M=(F8wM8^QErmsW#Saeb>Iyn}t6>TjF zwzRa{s6UIFMA_n|1ufyA7@5UQ@yxZjiEtG!EpA%fxmjSjczs)YXAmS^(P^f^DxF=y z#x=f9yJ)m6V4}CUEdVYNiV+c1@)S%T~dS*rr=9YH}!k-fM{ z455evl{^Bqw0%7!aSL&4H<)?77>Q-Rwr3Eoyt~yO?4;Q#UR@y;Azusl8nwHy z=80M&Dc%>f63OsAD+SZ%co2(@unNbj~)hCE%rY#By*k;b+CPBf~!Ok{c z=L#U>gZLHG3u7RNgK%+^;2p$FW)@wGrm98ZQDI2KFfs+lt--Wv?-U4{QFFozIRMTQ z4Tyx8t^z}mj7(U8p~yjtqWwssS|EpMlf4R4v18fhmA=4<09{qs1)_!5L28A=!Ekx& z<_@bMsbckyRjf{`So32QYXonu4mF2Yba#cD8-w!+W@Z9>ldr|h37fNs);wQJ^Dly( zqPrOF;HHj6%`MIALnaqTm|=cSE{P2%!x1hTUA&Gp}w+{7P{c_RdMg~nn@@8jBB+(ZF&qfTDE=6&jPGbZEkA} zZc+mwUuRhDLU)5|X=#tIQ^l{eR4psB;$>yX_jPuTwA9d;DmZsl4OGF($rYrCLBy!2 zCEi3x@v^eC($bE|G>t?`OVi5AB8jv}q^!)2H;xaMme#9tX-yHy($ZkPpkQgK2+GQA zzy%bwm6cJzYpWVkLaoRI2fdU)dt;DIWOLa(K6z?t2FC;kVEIkWOD1}@~alY=RwfhG2UTNboW(plUP6Ww9Jt>!f~siB9t zjuW#kNFjh40?^Fn+d73}l0rxm0ZCoZ+1cKy2I|n3vb4a*QSe zj?x@<&!xval^*kLv_}btQrNp%f{MkUU1@@dma*@U+uMRN_%qudY=Q#jZfS4ta0lBO zA%bi8~(0A!@Ra~T}q~=r56CO&C(Xut%EdPx30V=7|4mO zM^?RI16LcXWNk{&BNYs|Y1mVB_4r!A5S`(!jx-Ta*|e+}ij*!Gh#zJ1DV5DB!Eb?4cIUA1AObytOnIqMB+Lbn_^n6j=njW?s5x#UXO<4KOEU}PP;+%^B!I9w04rWQ zHS}{&ZNY5GW+A{zjgDd&rqI6PpE+}~;vY$mnKNrCRx3j}<5MPU=JvQsuBoaL#t*SQ zuJ#P%&w=JAUX!Bbc_1is!iGi2*IHu+Rc26aCuv0M;TW2%gT5C(R~4$B8g@2~Z-gh* z1lTX)G%Oe;s#BxqQOf{1i26n)sbMQi_5-XYj24T#3W%yP#C!QDp1qZf0Zmg8<$=T7ENKcZ(&6^am7-aaGV9;`h zh4nmcWfMRp}7XGQ5>e^{VSd3(oj=Do|Jyml17xEHyCQ zX0BBlY~EzE9WhW&#h?A8h6Upx5FL78j|qp>o^F^OwVpO%de?f|#qo@S?N^J^6YlC% zdQi-#RHZ>a2pfB_b9ijx%%_vGgyS)L0EaWlfUm2wJJ6M~ZOh`es4Y(h z8^M^`;`WKBUpxb<&}#VP$;YQeN?_+i-JY5v>5JycHU|(g^h_nVskzIal72)La9Ut& zrd3B3VvHRF@idiBtVx69#i0u=zoQ1u!{j4|j-MON$Z3hts*<4rX_BNZsUeOqJc-jE zB2H^_V`ED&H72gei6Y>nMRas`)li|L2OHg3lPrG(Vf;!r*BPoUA=5@hV zUvrCGJ*mdl3}1-06XoiulM$u5@VS^IPn=ZwvoCiEJheD>>ILK-Pv0MSC&n!FHMbNY7&~L@2}>* zYVNPfCa7yW*R}!b+O_qib^6;?M7O26OiPD@PT)kLLQl(tP9T!2=@>Ah z&fIsqvExaRbYDq(DRJ@-47G3&>vCgnYAHI-n^A6JVSD>h1u81XpcrT4laH-W{nNY0n*p#VJTc zNEGSBApHi-=lj}veBrs>UF|sefTKe^8Gvp3D&*;IsPMr~QYn*&V!jOwx?(MicMtYn zltTXv4FVRAz{cjru8{5yi9_cfhfS}Icc1JQ)u)+3*ohk2|X%Qz)6?y=dK02Io6YuG(zmhrL=TR^yVxx+z74ou`mcMIgGyS>RBX(+CZSQCQN zetPQbF=1drOc*VAk_O{s*^iMiGC0vOh;Jl<(jZI>y0mx4i_at(VU`azYw%heUk%c9 z0xKl~iS{^wmmvMIt_Z3{xIM-OC@i;-iFIudsNK!+JWJyR?uhRcOdJAA!cq{aH$d(> z;CUEoZ^RpTuiQ+;kP7%w5L@dagFx^S`%&KA3<)ikhuAVS=v>vIYYB)Grn_UTkLlgr zj1|kjL3ab_f29D?&Rk~VC=pKqYY8){5UV{t)~YoLqf#*r)5y!Q%7Y978eK|q73yJE zclbxpK%WxpjsFo+M%dTkNSOFhOyZ}<|1v)y6O(7zk2NzuTE&LwCj=|ed1F(I6mBzv zbgSgGK0^J*_JHtYCo(NCZ(GdUytvVtjF=EH#cBZG4l*dok|>7Dct|!O0Cjh86Z~S} zioY@@6p5P$p!i?s>R^q`bYra=r198VG21;_B7Mm`+*k|z#ReVFWLMnQmFfvCB8*nY& z5N>bFA1o7_|H`V=oT|cXxtOl3D7aeFDmOL<(!6jDhn@hx;B@nL3Vh^S!aqBGOu8gG z_yZ4{eA({J8-?y*H4g;R z#Wr6+s{XOo<6bpitjdbLMLzqf85ugvAQNwDOn}0CS!Zp2af>ZH(j;8`QbFfmNmlQWnOp`S1N@7 zsvwbAL3SuyN(jLJu)6AJmqsz)uGozTAeb5#pNMxX@v}o546MV*q(+K}3s``|H*HGM z;UdN>@tz={rRK;b;@n2v350TqEljh%RZt^WO{}!HK{opyVshLVW#tjwAM;TVE0DarC+sL8@Zank6HIHxFIPamR=b&0&yRjhLO)Z7IQR zaCkseAw$LZf%f6SUr>cD-A3w;d-QQB!E|vGuu9FDk$JTe&8NnNXq9>G5AA24)ZLD; zo;FHo-y=t5`f(-_hC4-QntQE#C|!(f3A(LH?r~7L2_)BuXRy9+>kYE^2O8`Q)tPC!V_N|h)N=q4RN#d-P+EFZ*YXJDn&kX&p@%qzdZ zGBvXueW8omXkYfvs((6E2_dZ(#AucR5dj=*C_s~SX{L_gh< z8UYt=9yr7axM;TK4|Z+DE%DT>)p4Jd0el-=c3@(OQwHP82k|_{>>)qGM-%ACbxE~wRlbA-Ps4N=F5>#K#N;!~#l?CW@h5`a#pZ_|bA94=lGnM{&Z z{TRur5=n;p=deFkPDTh?O~GZ5>PkL!%Kry?RSlq5m7rHz>t->axGF086JFQeg(Ffv zu{ynVb97(CYo`9}YjT9D)5Qr229Zzs`R{B-fLKFUJ;>PA{MgvlB#&Kft?Az8+oT?9O$@3vH`c z1^ESC1w93u3Vu=WYxOLqUcd^^Vnz7>R5moUg9M84$ecU(Qh)yrk|0lDx2x#$6T=r7a_f z)ZZ%V?MmV8O403#dY7U;tf)^Y>hntB^Geb4iu!_Le^pW6QVQQvir!Mxw-xn0rSLta z=siV!Ur|3&)X$W{&y=Fi6!mjOJ*cSPDuv%FMc*pw_e$aSO40X<`VU3@kD?w@3J)no zhZOa6weWPc=yX**LsidJ3(r-H&Q;a(RP_?o{#(_4i&}7xYJWt{ccf=#Wvk8%p5w^N zFF%klVqU}+E?SJ(62z7+TaMTY#8w`0Bx0)&J8I3*h#iC2amTMk>{!I=PgsXo z17iL_BVsO;+I#g2& zHFcP#7HMj+rViIsm!^);)WbB@t*Ik5b(E%#)>MzCj?vVynmSHX$7|{YO)b&XQccx0 zwMb!BQ>!(#MpGwh>Lg8_tf{q{Iz>~bYU(siovx`fGS9e@qN#^#>QYTzrm4#{b%my`)YKz1^+-)!rKzhm z^(akUqp3%0>M@#ntfn5PsmE*TT1~Cj)Dtvyou)Qus!vn>ni|m5MokTBYLlj}*VK@v zHf!nzO+8UlTQs#*Q`(=ZWHOFSnakA$4rRF$AOZ%0Uwgsd- zm1)XpOp{N??+pC5GA;c~0_$|2t}ZkKaG=`w!EGpT{+R34WL2cLjdG<(l(4gxB+8MRVTBsR6*u z*~N=hjX%n@F^{9hv-myFwXrYqVw+a-D%VP>owxBrsQ-}{Ya0K8YZbt-@~>R0L=FBo z{QiO8zwrAH*Q(G?^<}b_bEORY?Hb<+>~6yEX8dl&?>78);ddu~yX9hsX5S-g_GgiL z8NdB<)?0E~mXzlBgPi7gS5DLTALXp~%3a(6EMv9cL?=4RIS#vmrg_Dn*-fjiSxHO({;-7W}}px{KxF4DIk& zz~!&w*Q;oU_ai)@WWTB8I4)+H#aY_w50zr@|2K+u?D;e_PRBQjvp7fdiBxWJu9kC} zT08_e=KEF)_;uW^YPS1S?WBiQZT4gMJ%Rkk)IZ6R z^~Y=~1}GyVLz1|abvAvCcd)+!1wWb5lU&1=iVP{a(c}!)14PdFG^t-nZ{efEXEF1? zZR~8e&6bfN%Zkiw%(k7eZ`q&OU)W#SckFM8&78yj!8q^f>G?P1C$;&%WDFqD;Ei6$ zu80g+WUS6+G9hy9!2C!JEBqO-1X5hSkV!qKJWJr7hTkVPIp7T<_Sx(-%s50&Q!J$8gKjhNzaT?zhX421f3mj%C)+j2 zSSPfCos@0j~()+t?3DY&M|Y&yew7cx3R_-)FCbDBD;sp0@svxf zqQ^mc{F5Gs=y4Xu;~aWiK#vRQaV0&jrpG<>c!VC0(c?*a^wHxTdi;SN@6zKh^!PhH zzNg1O>G5xR{6LR$WIWEJ$0hW*lpeRx<92%7L65uWakq><-$SvdDE2hPKBmVf^!S?c z&QK6LlOAU&NM1;>-_YY~dhDXdll0g_kJsq&dwT4pM;|@jpvMRF_?jMnqQ}4KA)sBY zB6bZuuA|2edR$MB8&yCPfNrJaZS=UE9=qsq2R-hj$G!BppB@j=8v>z6Dfu`(o}|Z9 z^mtm`#APPQ41$5r=wOn@u?+MudE;FCQxSYKavW^a9H|GjQRX2P&}L2 zjz&D6;zO8LhWIdw4`udp#9b6GX7&oiM^gMSX0Jqi48=#Yv?|0WP<$NAs7Abu;-xI3 z5%DUDSFp?m#3xa_hGidt_*9D5vaAJ&&!qTt=3IjKT#C5SQ?BXtfVEY4yq>$e!TZLAP^7l<0?F_ygw zsf$I8ix^A01~s;`0_0sTYFx_LVYx_M&E#v*Q;hU==*pFhxzXfRjE%gWz+cPQ4g$|) zHYyM4o#NdcXzxZUzL7~;2yPc_ax-J2ZvvEC7-G_`Q1Vc8CsQo^$J}c6W9)5aIPP}9 zyMwXuC8&0J^cCnKAWPq+S=P*BHxhL8_0*_XC}Kn8Yd`up*TYB65nvs#c=H zeo_4m5WE?wx0tjH!Mh^!9khQOQXh!ad%*T^q&^X;k5JZx)E6T48D2jTsc%H;E5;^` zL+V?RI>=bm(HYNe3TREEv3Q4!|VifHb74JmF6Og)3r0xL@9;6=P`~b0; zm`@LIHftg>9}`s`;cQwhQcsE06P#tNM(SCSdWN&?BawQE6Q@7Vne#1xdx1|t-m9X< z?>OUYklHI!zvpcBRHWVzsXmb7Fr?lTsr{VI8I9B*MCxtyZYfgli_{-cb39TXi`0jJ zx)7Dv@N>?*?;-qxvjxYa_CfLPH=tn}QhyPtZ#lEi zM(TT!`i`@@F-ZMer2fg7=0<9ZOr!e)$TkV7Geqh%?21<)wN0eXl*u5A`7$dUh1A6&wOwY}I#QP-b%b;&%7!BKTTynU%tvP}Kw%$8&# z^{7lE_YnH?9Y*e9*@wI*MUBVNtNBRn5vivEXD^c!=>-`EfVt9hGCTZr;K=r}S7cbl z=1MQgY}xk+UzXYOX9;_3p5DM4sL?0GMle^}E3+f}=$$v%o3c#rydksI|3tV?W=GMx z`(?J~IePb9S$c$^eJHd4Apd

!JK6ORAwh^;TU_Ft$Ud2 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 diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf index ff926929a7d583c4fc5264dfb84fd1aceb331a8f..e31faab20de0f76f74a8c79c92f71e7a32975cff 100644 GIT binary patch literal 26947 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 diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as index 07f038411..0b047bad6 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as @@ -17,6 +17,7 @@ package { TestActivationArguments; TestArguments; + TestCallCall; TestCallLocal; TestCatchFinally; TestChain2; diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCallCall.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCallCall.as new file mode 100644 index 000000000..bbc62332a --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCallCall.as @@ -0,0 +1,13 @@ +package tests +{ + import flash.utils.getDefinitionByName; + + public class TestCallCall + { + public function run() : * + { + var o = new getDefinitionByName("Object")(); + var o2 = new (getDefinitionByName("Object"))(); + } + } +}