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 4bd0bae00..109d2da75 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
@@ -85,8 +85,31 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile
@Test
public void testCompoundAssignments() {
- decompileMethod("classic_air", "testCompoundAssignments", "var a:int = 0;\r\n"
- + "trace(a += 10);\r\n",
+ decompileMethod("classic_air", "testCompoundAssignments", "var b:* = [10,20,30];\r\n"
+ + "var a:int = 0;\r\n"
+ + "trace(\"a += 5\");\r\n"
+ + "a += 5;\r\n"
+ + "trace(\"arr[call()] = arr[call()] + 2;\");\r\n"
+ + "b[calc()] = b[calc()] + 2;\r\n"
+ + "var t:MyTest = new MyTest();\r\n"
+ + "trace(\"t.attr *= 10\");\r\n"
+ + "t.attr *= 10;\r\n"
+ + "trace(\"attr -= 5\");\r\n"
+ + "attr -= 5;\r\n"
+ + "trace(\"arr[2] += 5\");\r\n"
+ + "b[2] += 5;\r\n"
+ + "trace(\"arr[call()] /= 5\");\r\n"
+ + "b[calc()] /= 5;\r\n"
+ + "trace(\"arr[call()][call()] &= 10;\");\r\n"
+ + "b[calc()][calc()] &= 10;\r\n"
+ + "try\r\n"
+ + "{\r\n"
+ + "trace(\"in try\");\r\n"
+ + "}\r\n"
+ + "catch(e:Error)\r\n"
+ + "{\r\n"
+ + "trace(e.message);\r\n"
+ + "}\r\n",
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 d61a3b019..c286edf22 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
@@ -85,8 +85,31 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes
@Test
public void testCompoundAssignments() {
- decompileMethod("classic", "testCompoundAssignments", "var a:int = 0;\r\n"
- + "trace(a = a + 10);\r\n",
+ decompileMethod("classic", "testCompoundAssignments", "var b:* = [10,20,30];\r\n"
+ + "var a:int = 0;\r\n"
+ + "trace(\"a += 5\");\r\n"
+ + "a += 5;\r\n"
+ + "trace(\"arr[call()] = arr[call()] + 2;\");\r\n"
+ + "b[this.calc()] = b[this.calc()] + 2;\r\n"
+ + "var t:MyTest = new MyTest();\r\n"
+ + "trace(\"t.attr *= 10\");\r\n"
+ + "t.attr *= 10;\r\n"
+ + "trace(\"attr -= 5\");\r\n"
+ + "this.attr -= 5;\r\n"
+ + "trace(\"arr[2] += 5\");\r\n"
+ + "b[2] += 5;\r\n"
+ + "trace(\"arr[call()] /= 5\");\r\n"
+ + "b[this.calc()] = b[this.calc()] / 5;\r\n"
+ + "trace(\"arr[call()][call()] &= 10;\");\r\n"
+ + "b[this.calc()][this.calc()] = b[this.calc()][this.calc()] & 10;\r\n"
+ + "try\r\n"
+ + "{\r\n"
+ + "trace(\"in try\");\r\n"
+ + "}\r\n"
+ + "catch(e:Error)\r\n"
+ + "{\r\n"
+ + "trace(e.message);\r\n"
+ + "}\r\n",
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 9a1080a8f..8ffeef88c 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 a6bc7bfad..3763caf20 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.old b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
index 0400aa796..7a99320ad 100644
--- a/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
+++ b/libsrc/ffdec_lib/testdata/as3_new/obj/as3_newConfig.old
@@ -16,7 +16,7 @@
CONFIG::timeStamp
- '08.03.2021'
+ '12.03.2021'
CONFIG::air
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 0400aa796..48bbe0213 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
- '08.03.2021'
+ '13.03.2021'
CONFIG::air
diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as
index 300c1fcfc..b7fe4b7c6 100644
--- a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as
+++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as
@@ -11,37 +11,38 @@ package tests
public function run():void
{
- /*var b:* = [10,20,30];
+ var b:* = [10,20,30];
var a:int = 0;
trace("a += 5");
a += 5;
-
+ trace("arr[call()] = arr[call()] + 2;");
b[calc()] = b[calc()] + 2;
var t:MyTest = new MyTest();
- trace("t.attr += 5");
+ trace("t.attr *= 10");
t.attr *= 10;
- trace("attr += 5");
+ trace("attr -= 5");
attr -= 5;
trace("arr[2] += 5");
b[2] += 5;
- trace("arr[call()] += 5");
+ trace("arr[call()] /= 5");
b[calc()] /= 5;
+ trace("arr[call()][call()] &= 10;");
b[calc()][calc()] &= 10;
+ //to trigger slot usage
try{
trace("in try");
}catch (e:Error){
trace(e.message);
- } */
- var a:int = 0;
- trace(a += 10);
+ }
+
}
}