Fixed: AS3 decompilation: increment/decrement on properties

This commit is contained in:
Jindra Petřík
2021-02-21 20:36:17 +01:00
parent 08424221d6
commit 11c3c2a8a7
10 changed files with 128 additions and 25 deletions

View File

@@ -127,7 +127,7 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT
@Test
public void testIncrement3() {
decompileMethod("assembled", "testIncrement3", "--_loc1_.length;\r\n",
decompileMethod("assembled", "testIncrement3", "_loc1_.length--;\r\n",
false);
}

View File

@@ -294,9 +294,9 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile
public void testDotParent() {
decompileMethod("classic_air", "testDotParent", "var d:* = new TestClass1();\r\n"
+ "var k:* = null;\r\n"
+ "k.(++d.attrib, false);\r\n"
+ "k.(d.attrib++, false);\r\n"
+ "trace(\"between\");\r\n"
+ "var g:* = k.(++d.attrib, false);\r\n"
+ "var g:* = k.(d.attrib++, false);\r\n"
+ "trace(\"end\");\r\n",
false);
}
@@ -855,7 +855,19 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile
+ "var index:uint = 0;\r\n"
+ "chars[index++] = 5;\r\n"
+ "trace(\"arr[++e]\");\r\n"
+ "chars[++index] = 5;\r\n",
+ "chars[++index] = 5;\r\n"
+ "trace(\"attr++\");\r\n"
+ "trace(attrx++);\r\n"
+ "attrx++;\r\n"
+ "trace(\"attr--\");\r\n"
+ "trace(attrx--);\r\n"
+ "attrx--;\r\n"
+ "trace(\"++attr\");\r\n"
+ "trace(++attrx);\r\n"
+ "++attrx;\r\n"
+ "trace(\"--attr\");\r\n"
+ "trace(--attrx);\r\n"
+ "--attrx;\r\n",
false);
}

View File

@@ -848,7 +848,19 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes
+ "chars[_loc7_] = 5;\r\n"
+ "trace(\"arr[++e]\");\r\n"
+ "var _loc8_:* = ++index;\r\n"
+ "chars[_loc8_] = 5;\r\n",
+ "chars[_loc8_] = 5;\r\n"
+ "trace(\"attr++\");\r\n"
+ "trace(this.attrx++);\r\n"
+ "++this.attrx;\r\n"
+ "trace(\"attr--\");\r\n"
+ "trace(this.attrx--);\r\n"
+ "--this.attrx;\r\n"
+ "trace(\"++attr\");\r\n"
+ "trace(++this.attrx);\r\n"
+ "++this.attrx;\r\n"
+ "trace(\"--attr\");\r\n"
+ "trace(--this.attrx);\r\n"
+ "--this.attrx;\r\n",
false);
}