From 8637d16022537cfbb4a10ab73515bef2b9be2fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 7 Feb 2021 13:19:37 +0100 Subject: [PATCH] AS3: Merged continues in try..catch --- CHANGELOG.md | 1 + .../jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java | 7 +++++-- .../as3decompile/ActionScript3AssembledDecompileTest.java | 2 -- .../ActionScript3CrossCompileDecompileTest.java | 2 -- .../ActionScript3CrossCompileSwfToolsDecompileTest.java | 3 --- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 578151c44..db5ce8b1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ All notable changes to this project will be documented in this file. - #349 AS3 - better handling of declarations - #735 AS3 - index out of bounds in deobfuscator - AS3 deobfuscator on &&, || operators +- Merged continues in try..catch ### Changed - AS3 test methods separated to classes diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java index 8e8a54263..c2a21f0e2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/graph/AVM2Graph.java @@ -1173,7 +1173,9 @@ public class AVM2Graph extends Graph { } currentRet.add(tryItem); - /*processIfs(tryItem.tryCommands); + + //----- Merge continues from catches/try BEGIN + processIfs(tryItem.tryCommands); processIfs(tryItem.finallyCommands); for (List cc : tryItem.catchCommands) { processIfs(cc); @@ -1236,7 +1238,8 @@ public class AVM2Graph extends Graph { } currentRet.add(maxCountCnt); } - }*/ + } + //----- Merge continues from catches/try END if (afterPart != null) { 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 40ef974d1..5e215592c 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 @@ -233,12 +233,10 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT + "{\r\n" + "try\r\n" + "{\r\n" - + "continue;\r\n" + "}\r\n" + "catch(e:Error)\r\n" + "{\r\n" + "trace(\"in catch\");\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "while(_loc5_ <= 100);\r\n" 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 71fd19103..a114d4ae8 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 @@ -171,7 +171,6 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "{\r\n" + "trace(\"in catch\");\r\n" + "a++;\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "return \"OK\";\r\n", @@ -198,7 +197,6 @@ public class ActionScript3CrossCompileDecompileTest extends ActionScript3Decompi + "{\r\n" + "trace(\"in catch2\");\r\n" + "trace(\"a=\" + a);\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", 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 b356c0b35..f8636d176 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 @@ -162,7 +162,6 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "{\r\n" + "trace(\"in catch\");\r\n" + "_loc1_++;\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "return \"OK\";\r\n", @@ -189,7 +188,6 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "{\r\n" + "trace(\"in catch2\");\r\n" + "trace(\"a=\" + _loc1_);\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n", @@ -264,7 +262,6 @@ public class ActionScript3CrossCompileSwfToolsDecompileTest extends ActionScript + "{\r\n" + "trace(\"in catch\");\r\n" + "trace(\"a=\" + _loc1_);\r\n" - + "continue;\r\n" + "}\r\n" + "}\r\n" + "trace(\"after\");\r\n",