diff --git a/CHANGELOG.md b/CHANGELOG.md index b82408689..fdb87a23f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file. - [#1762] AS3 - Auto adding returnvoid/return undefined - [#1762] AS - switch detection (mostcommon pathpart) - [#1763] AS3 - initialization of activation object in some cases +- AS3 - direct editation - arguments object on method with activation ## [15.0.0] - 2021-11-29 ### Added diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java index b371d0477..cdb4385bd 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java @@ -1689,8 +1689,10 @@ public class AVM2SourceGenerator implements SourceGenerator { NameAVM2Item n = (NameAVM2Item) an; if (n.getVariableName().equals("arguments") & !n.isDefinition()) { registerNames.add("arguments"); - registerTypes.add(new TypeItem("Object")); + registerTypes.add(new TypeItem("Array")); registerLines.add(0); //? + slotNames.add(n.getVariableName()); + slotTypes.add(new TypeItem("Array")); hasArguments = true; break; } 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 327dc983e..3756fe40b 100644 Binary files a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf and b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf differ 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 10958fd53..8870e2c2b 100644 Binary files a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf and b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf differ diff --git a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml index ccc475909..09cd1e0d1 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml +++ b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.xml @@ -16,7 +16,7 @@ CONFIG::timeStamp - '02.12.2021' + '04.12.2021' CONFIG::air diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as index cd9e4b9a6..d0152fc44 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as @@ -15,6 +15,7 @@ package */ public class Main extends Sprite { + TestActivationArguments; TestArguments; TestCatchFinally; TestChain2; diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestActivationArguments.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestActivationArguments.as new file mode 100644 index 000000000..80843dbad --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestActivationArguments.as @@ -0,0 +1,16 @@ +package tests +{ + + public class TestActivationArguments + { + public function run():* + { + var func:Function = function(a:int, b:int):int { + return a + b; + } + if (arguments.length > 0){ + trace(arguments[0]); + } + } + } +}