From b449db946fcd906c7fdbf400bb9931253a32901f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 3 Aug 2025 21:42:25 +0200 Subject: [PATCH] =?UTF-8?q?=C2=A7=C2=A7dupsrc=20introduced?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructions/InstructionDefinition.java | 39 +++-- .../abc/avm2/instructions/SetTypeIns.java | 4 +- .../avm2/instructions/executing/CallIns.java | 4 +- .../localregs/GetLocalTypeIns.java | 17 ++- .../localregs/SetLocalTypeIns.java | 2 +- .../instructions/other/GetPropertyIns.java | 4 +- .../instructions/other/SetPropertyIns.java | 4 +- .../abc/avm2/instructions/stack/DupIns.java | 13 +- .../src/com/jpexs/decompiler/graph/Graph.java | 2 + .../graph/model/DuplicateSourceItem.java | 141 ++++++++++++++++++ .../ActionScript3AssembledDecompileTest.java | 15 +- .../ActionScript3ClassicAirDecompileTest.java | 6 +- .../testdata/as3_new/bin/as3_new.flex.swf | Bin 44436 -> 44437 bytes .../src/tests/TestCompoundAssignments.as | 2 +- 14 files changed, 213 insertions(+), 40 deletions(-) create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/DuplicateSourceItem.java diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/InstructionDefinition.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/InstructionDefinition.java index c11710376..dc20e2ebe 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/InstructionDefinition.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/InstructionDefinition.java @@ -63,6 +63,7 @@ import com.jpexs.decompiler.graph.ScopeStack; import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.model.CommaExpressionItem; import com.jpexs.decompiler.graph.model.DuplicateItem; +import com.jpexs.decompiler.graph.model.DuplicateSourceItem; import com.jpexs.decompiler.graph.model.PopItem; import com.jpexs.decompiler.graph.model.PushItem; import com.jpexs.helpers.LinkedIdentityHashSet; @@ -562,10 +563,10 @@ public abstract class InstructionDefinition implements Serializable { if ((value instanceof IncrementAVM2Item) || (value instanceof DecrementAVM2Item)) { boolean isIncrement = (value instanceof IncrementAVM2Item); if (value.value instanceof DuplicateItem) { - GraphTargetItem duplicated = value.value.value; + GraphTargetItem duplicated = value.value.value.getThroughDuplicate(); stack.moveToStack(output); if (!stack.isEmpty()) { - if (stack.peek() == duplicated) { + if (stack.peek().getThroughDuplicate() == duplicated) { GraphTargetItem notCoerced = duplicated.getNotCoerced(); if (notCoerced instanceof GetLexAVM2Item) { GetLexAVM2Item getLex = (GetLexAVM2Item) notCoerced; @@ -584,9 +585,9 @@ public abstract class InstructionDefinition implements Serializable { GetPropertyAVM2Item getProp = (GetPropertyAVM2Item) notCoerced; if (((FullMultinameAVM2Item) getProp.propertyName).compareSame(multiname)) { - if (getProp.object instanceof DuplicateItem) { //assembled/TestIncrement3 - if (getProp.object.value == obj) { - getProp.object = obj; + if ((getProp.object instanceof DuplicateItem) || (getProp.object instanceof DuplicateSourceItem)) { //assembled/TestIncrement3 + if (getProp.object.value == obj.getThroughDuplicate()) { + getProp.object = obj.getThroughDuplicate(); } } @@ -635,12 +636,12 @@ public abstract class InstructionDefinition implements Serializable { GetPropertyAVM2Item getProp = (GetPropertyAVM2Item) value.value.getNotCoercedNoDup(); if (((FullMultinameAVM2Item) getProp.propertyName).compareSame(multiname)) { - if (getProp.object instanceof DuplicateItem) { - if (getProp.object.value == obj) { - getProp.object = obj; + if ((getProp.object instanceof DuplicateItem) || (getProp.object instanceof DuplicateSourceItem)) { + if (getProp.object.value == obj.getThroughDuplicate()) { + getProp.object = obj.getThroughDuplicate(); } } - if (Objects.equals(getProp.object, obj)) { + if (Objects.equals(getProp.object.getThroughDuplicate(), obj.getThroughDuplicate())) { if (hasConvert) { if (isIncrement) { stack.addToOutput(new PostIncrementAVM2Item(ins, localData.lineStartInstruction, getProp)); @@ -666,7 +667,7 @@ public abstract class InstructionDefinition implements Serializable { boolean isIncrement = (duplicated instanceof IncrementAVM2Item); stack.moveToStack(output); if (!stack.isEmpty()) { - if (stack.peek() == duplicated) { + if (stack.peek().getThroughDuplicate() == duplicated.getThroughDuplicate()) { GraphTargetItem incrementedProp = duplicated.value; if (incrementedProp instanceof GetLexAVM2Item) { GetLexAVM2Item getLex = (GetLexAVM2Item) incrementedProp; @@ -716,7 +717,7 @@ public abstract class InstructionDefinition implements Serializable { if (valueSetLocalReg.value.value instanceof DuplicateItem) { GraphTargetItem duplicated = valueSetLocalReg.value.value.value; //if (!output.isEmpty() && output.get(output.size() - 1) instanceof PushItem && ((PushItem) output.get(output.size() - 1)).value == duplicated) { - if (!stack.isEmpty() && stack.peek() == duplicated) { + if (!stack.isEmpty() && stack.peek().getThroughDuplicate() == duplicated) { GraphTargetItem notCoerced = duplicated.getNotCoerced(); if (notCoerced instanceof GetPropertyAVM2Item) { GetPropertyAVM2Item getProperty = (GetPropertyAVM2Item) notCoerced; @@ -797,7 +798,7 @@ public abstract class InstructionDefinition implements Serializable { } } - if (obj.getThroughDuplicate() instanceof ConstructAVM2Item) { + if (obj.getThroughDuplicate() instanceof ConstructAVM2Item) { ConstructAVM2Item c = (ConstructAVM2Item) obj.getThroughDuplicate(); if (c.object instanceof ApplyTypeAVM2Item) { ApplyTypeAVM2Item at = (ApplyTypeAVM2Item) c.object; @@ -805,10 +806,24 @@ public abstract class InstructionDefinition implements Serializable { List vals = new ArrayList<>(); vals.add(value); c.object = new InitVectorAVM2Item(c.getInstruction(), c.getLineStartIns(), at.params.get(0), vals); + if (obj instanceof DuplicateItem) { + if (!stack.isEmpty() + && stack.peek() instanceof DuplicateSourceItem + && stack.peek().getThroughDuplicate() == obj.getThroughDuplicate()) { + stack.push(stack.pop().value); + } + } return; } else if (c.object instanceof InitVectorAVM2Item) { InitVectorAVM2Item iv = (InitVectorAVM2Item) c.object; iv.arguments.add(value); + if (obj instanceof DuplicateItem) { + if (!stack.isEmpty() + && stack.peek() instanceof DuplicateSourceItem + && stack.peek().getThroughDuplicate() == obj.getThroughDuplicate()) { + stack.push(stack.pop().value); + } + } return; } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/SetTypeIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/SetTypeIns.java index 2947ca541..74ee755e0 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/SetTypeIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/SetTypeIns.java @@ -74,12 +74,12 @@ public interface SetTypeIns { GraphTargetItem insideDup = notCoercedValue.value; if (!AVM2Item.mustStayIntact1(insideDup.getNotCoercedNoDup())) { stack.moveToStack(output); - if (!stack.isEmpty() && stack.peek() == insideDup) { + if (!stack.isEmpty() && stack.peek().getThroughDuplicate() == insideDup.getThroughDuplicate()) { stack.pop(); if ((insideDup instanceof DuplicateItem) && regId > -1) { int numDups = 1; - while ((insideDup instanceof DuplicateItem) && !stack.isEmpty() && stack.peek() == insideDup.value) { + while ((insideDup instanceof DuplicateItem) && !stack.isEmpty() && stack.peek().getThroughDuplicate() == insideDup.getThroughDuplicate()) { insideDup = insideDup.value; stack.pop(); numDups++; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java index 0ca15144b..0a27db39e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java @@ -87,8 +87,8 @@ public class CallIns extends InstructionDefinition { if (function instanceof GetPropertyAVM2Item) { GetPropertyAVM2Item getProperty = (GetPropertyAVM2Item) function; if (getProperty.object instanceof DuplicateItem) { - if (getProperty.object.value == receiver) { - getProperty.object = receiver; + if (getProperty.object.value == receiver.getThroughDuplicate()) { + getProperty.object = receiver.getThroughDuplicate(); } } else if (getProperty.object instanceof SetLocalAVM2Item) { SetLocalAVM2Item setLocal = (SetLocalAVM2Item) getProperty.object; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/GetLocalTypeIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/GetLocalTypeIns.java index a46d33ee7..d1be7abc7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/GetLocalTypeIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/GetLocalTypeIns.java @@ -47,6 +47,7 @@ import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.TypeItem; import com.jpexs.decompiler.graph.model.CommaExpressionItem; import com.jpexs.decompiler.graph.model.DuplicateItem; +import com.jpexs.decompiler.graph.model.DuplicateSourceItem; import java.util.List; /** @@ -133,9 +134,9 @@ public abstract class GetLocalTypeIns extends InstructionDefinition { if (setLocal.value.getNotCoerced() instanceof GetPropertyAVM2Item) { SetPropertyAVM2Item setProp = (SetPropertyAVM2Item) setItem; GetPropertyAVM2Item getProp = (GetPropertyAVM2Item) setLocal.value.getNotCoerced(); - if (getProp.object.getThroughDuplicate() == setProp.object) { + if (getProp.object.getThroughDuplicate() == setProp.object.getThroughDuplicate()) { if (((FullMultinameAVM2Item) setProp.propertyName).compareSame((FullMultinameAVM2Item) getProp.propertyName)) { - if (getProp.object instanceof DuplicateItem) { + if ((getProp.object instanceof DuplicateItem) || (getProp.object instanceof DuplicateSourceItem)) { getProp.object = getProp.object.value; } GraphTargetItem result; @@ -175,9 +176,10 @@ public abstract class GetLocalTypeIns extends InstructionDefinition { if (setItem.value.value instanceof GetPropertyAVM2Item) { SetPropertyAVM2Item setProp = (SetPropertyAVM2Item) setItem; GetPropertyAVM2Item getProp = (GetPropertyAVM2Item) setItem.value.value; - if (getProp.object.getThroughDuplicate() == setProp.object) { + if (getProp.object.getThroughDuplicate() == setProp.object.getThroughDuplicate()) { if (((FullMultinameAVM2Item) setProp.propertyName).compareSame((FullMultinameAVM2Item) getProp.propertyName)) { - if (getProp.object instanceof DuplicateItem) { + if (getProp.object instanceof DuplicateItem + || getProp.object instanceof DuplicateSourceItem) { getProp.object = getProp.object.value; } if (isIncrement) { @@ -223,7 +225,8 @@ public abstract class GetLocalTypeIns extends InstructionDefinition { GetPropertyAVM2Item getProp = (GetPropertyAVM2Item) setItem.value.value; if (getProp.object.getThroughDuplicate() == setProp.object) { if (((FullMultinameAVM2Item) setProp.propertyName).compareSame((FullMultinameAVM2Item) getProp.propertyName)) { - if (getProp.object instanceof DuplicateItem) { + if (getProp.object instanceof DuplicateItem + || getProp.object instanceof DuplicateSourceItem) { getProp.object = getProp.object.value; } if (isIncrement) { @@ -243,9 +246,7 @@ public abstract class GetLocalTypeIns extends InstructionDefinition { } } } - } - - + } } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/SetLocalTypeIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/SetLocalTypeIns.java index a739adbc8..3a8491810 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/SetLocalTypeIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/localregs/SetLocalTypeIns.java @@ -155,7 +155,7 @@ public abstract class SetLocalTypeIns extends InstructionDefinition implements S if (value instanceof DuplicateItem) { result.directlyCausedByDup = true; - } + } SetTypeIns.handleResult(value, stack, output, localData, result, regId, value.returnType()); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java index 800fc3c71..50cd07c30 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java @@ -114,7 +114,7 @@ public class GetPropertyIns extends InstructionDefinition { } } if (findPropName.name instanceof DuplicateItem) { - if (findPropName.name.value == multiname.name) { + if (findPropName.name.getThroughDuplicate() == multiname.name.getThroughDuplicate()) { findPropName.name = findPropName.name.value; } } @@ -131,7 +131,7 @@ public class GetPropertyIns extends InstructionDefinition { } } if (findPropName.namespace instanceof DuplicateItem) { - if (findPropName.namespace.value == multiname.namespace) { + if (findPropName.namespace.getThroughDuplicate() == multiname.namespace.getThroughDuplicate()) { findPropName.namespace = findPropName.namespace.value; } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java index 392cece31..2e8b1c391 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java @@ -92,13 +92,13 @@ public class SetPropertyIns extends InstructionDefinition implements SetTypeIns CompoundableBinaryOp binaryOp = (CompoundableBinaryOp) value.getNotCoerced(); if (binaryOp.getLeftSide() instanceof GetLexAVM2Item) { GetLexAVM2Item getLex = (GetLexAVM2Item) binaryOp.getLeftSide(); - if ((obj instanceof FindPropertyAVM2Item) && localData.abc.constants.getMultiname(multiname.multinameIndex).equals(getLex.propertyName)) { + if ((obj.getThroughDuplicate() instanceof FindPropertyAVM2Item) && localData.abc.constants.getMultiname(multiname.multinameIndex).equals(getLex.propertyName)) { result.setCompoundValue(binaryOp.getRightSide()); result.setCompoundOperator(binaryOp.getOperator()); } } else if (binaryOp.getLeftSide() instanceof GetPropertyAVM2Item) { GetPropertyAVM2Item propItem = (GetPropertyAVM2Item) binaryOp.getLeftSide(); - if (Objects.equals(obj, propItem.object.getThroughDuplicate()) && Objects.equals(multiname, propItem.propertyName)) { + if (Objects.equals(obj.getThroughDuplicate(), propItem.object.getThroughDuplicate()) && Objects.equals(multiname, propItem.propertyName)) { result.setCompoundValue(binaryOp.getRightSide()); result.setCompoundOperator(binaryOp.getOperator()); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/stack/DupIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/stack/DupIns.java index f8e8c391d..166ef1910 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/stack/DupIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/stack/DupIns.java @@ -23,9 +23,12 @@ import com.jpexs.decompiler.flash.abc.avm2.LocalDataArea; import com.jpexs.decompiler.flash.abc.avm2.graph.AVM2GraphTargetDialect; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition; +import com.jpexs.decompiler.flash.abc.avm2.model.NewActivationAVM2Item; +import com.jpexs.decompiler.flash.abc.avm2.model.clauses.ExceptionAVM2Item; import com.jpexs.decompiler.graph.GraphTargetItem; import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.model.DuplicateItem; +import com.jpexs.decompiler.graph.model.DuplicateSourceItem; import java.util.List; /** @@ -52,8 +55,14 @@ public class DupIns extends InstructionDefinition { @Override public void translate(AVM2LocalData localData, TranslateStack stack, AVM2Instruction ins, List output, String path) { - GraphTargetItem v = stack.pop(); - stack.push(v); + GraphTargetItem v = stack.pop(); + if (v instanceof NewActivationAVM2Item + || v instanceof ExceptionAVM2Item) { + stack.push(v); + } else { + stack.push(new DuplicateSourceItem(AVM2GraphTargetDialect.INSTANCE, ins, localData.lineStartInstruction, v)); + } + //stack.push(v); stack.push(new DuplicateItem(AVM2GraphTargetDialect.INSTANCE, ins, localData.lineStartInstruction, v)); //v.moreSrc.add(new GraphSourceItemPos(ins, 0)); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java index 71c3f6b17..830053ad2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java @@ -3860,6 +3860,8 @@ public class Graph { GraphTargetItem rightSide = ((PushItem) filteredOnTrue.get(filteredOnTrue.size() - 1)).value; GraphTargetItem prevExpr = stack.pop(); GraphTargetItem leftSide = expr.getNotCoercedNoDup(); + + prevExpr = prevExpr.getThroughDuplicate(); boolean hideEmptyTrueFalse = true; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/DuplicateSourceItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/DuplicateSourceItem.java new file mode 100644 index 000000000..245521535 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/DuplicateSourceItem.java @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2010-2025 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.graph.model; + +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; +import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.helpers.GraphTextWriter; +import com.jpexs.decompiler.graph.CompilationException; +import com.jpexs.decompiler.graph.GraphSourceItem; +import com.jpexs.decompiler.graph.GraphTargetDialect; +import com.jpexs.decompiler.graph.GraphTargetItem; +import com.jpexs.decompiler.graph.SimpleValue; +import com.jpexs.decompiler.graph.SourceGenerator; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * Duplicate item. + * + * @author JPEXS + */ +public class DuplicateSourceItem extends GraphTargetItem implements SimpleValue { + + /** + * Constructor. + * + * @param dialect Dialect + * @param src Source + * @param lineStartIns Line start item + * @param value Value + */ + public DuplicateSourceItem(GraphTargetDialect dialect, GraphSourceItem src, GraphSourceItem lineStartIns, GraphTargetItem value) { + super(dialect, src, lineStartIns, value.getPrecedence(), value); + } + + @Override + public Object getResult() { + return value.getResult(); + } + + @Override + public Double getResultAsNumber() { + return value.getResultAsNumber(); + } + + @Override + public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException { + /*if (!value.hasSideEffect() || !Configuration.displayDupInstructions.get()) { + return value.appendTry(writer, localData); + }*/ + writer.append("§§dupsrc("); + value.appendTry(writer, localData); + return writer.append(")"); + } + + @Override + public GraphTargetItem getNotCoerced() { + return value.getNotCoerced(); + } + + @Override + public GraphTargetItem getNotCoercedNoDup() { + return this; + } + + @Override + public GraphTargetItem getThroughRegister() { + return value.getThroughRegister(); + } + + @Override + public GraphTargetItem getThroughDuplicate() { + return value.getThroughDuplicate(); + } + + @Override + public boolean isCompileTime(Set dependencies) { + if (dependencies.contains(value)) { + return false; + } + if (!((value instanceof SimpleValue) && ((SimpleValue) value).isSimpleValue())) { + dependencies.add(value); + } + return value.isCompileTime(dependencies); + } + + @Override + public boolean isVariableComputed() { + return value.isVariableComputed(); + } + + @Override + public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException { + return new ArrayList<>(); + } + + @Override + public boolean hasReturnValue() { + return true; + } + + @Override + public GraphTargetItem simplify(String implicitCoerce) { + return this; + } + + @Override + public GraphTargetItem returnType() { + return value.returnType(); + } + + /*@Override + public GraphTargetItem invert(GraphSourceItem src) { + return //new DuplicateItem(src, value instanceof NotItem ? (value.value) : new NotItem(src, value)); + }*/ + @Override + public boolean isSimpleValue() { + return ((value instanceof SimpleValue) && ((SimpleValue) value).isSimpleValue()); + } + + @Override + public boolean hasSideEffect() { + return value.hasSideEffect(); + } + +} 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 877b523bb..73f6ded48 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 @@ -340,13 +340,20 @@ public class ActionScript3AssembledDecompileTest extends ActionScript3DecompileT @Test public void testPushWhile() { decompileMethod("assembled", "testPushWhile", "var _loc3_:int = 5;\r\n" - + "§§push(obfuscated[\"xxx\"] = new (getDefinitionByName(\"flash.utils\"+\".\"+\"ByteArray\"))());\r\n" + + "§§push(obfuscated[\"xxx\"] = new (getDefinitionByName(\"flash.utils\"+\".\"+§§dupsrc(\"ByteArray\")))());\r\n" + "§§push(50);\r\n" - + "while(§§dup(§§pop()))\r\n" + + "while(true)\r\n" + "{\r\n" + + "§§push(§§dupsrc(§§pop()));\r\n" + + "if(!§§dup(§§pop()))\r\n" + + "{\r\n" + + "break;\r\n" + + "}\r\n" + "§§push(§§pop() - 1);\r\n" - + "§§dup(§§pop())[§§dup(§§dup(§§pop())).length] = 0x29 ^ 0x6F;\r\n" - + "§§dup(§§pop())[§§dup(§§dup(§§pop())).length] = 9 ^ 0x54;\r\n" + + "§§push(§§dupsrc(§§pop()));\r\n" + + "§§dupsrc(§§dup(§§pop()))[§§dup(§§dup(§§pop())).length] = 0x29 ^ 0x6F;\r\n" + + "§§push(§§dupsrc(§§pop()));\r\n" + + "§§dupsrc(§§dup(§§pop()))[§§dup(§§dup(§§pop())).length] = 9 ^ 0x54;\r\n" + "}\r\n" + "§§pop();\r\n" + "§§pop();\r\n", 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 c738af077..51507fdca 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 @@ -1385,11 +1385,9 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile decompileMethod("classic_air", "testIncDec7", "var a:* = [1,2,3,4,5];\r\n" + "var index:int = 0;\r\n" + "trace(\"a[++index]\");\r\n" - + "index++;\r\n" - + "trace(a[index]);\r\n" + + "trace(a[(index++,index)]);\r\n" + "trace(\"a[--index]\");\r\n" - + "index--;\r\n" - + "trace(a[index]);\r\n", + + "trace(a[(index--,index)]);\r\n", false); } 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 5fc4b1377e2cd8bcf096e2f78fc07a0857379819..e2478e0e0ee7bfb4f17c85e9a5274129a61cb984 100644 GIT binary patch delta 42638 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

Y`bW!3_VCP7Frkqqx3M8`)rDFLY)Wm`;J9!T} zk4W>kBpgsTKKn)9G*F~T7K#}p3t`ozxIz+r0KKa*C>spwLWn_;5fi}p6AtQmyC2>c z7Cw9hyZV9nmg3I)IahpT)w#)PO>)V^iciz2wd9%E|EQ)v&o^ZF&qj((CLS)=y*Q5AKtW1Tk1PWz+L?{f6 z?uV$8$!&^Bv*9ozxA6I8SaLI!As3gg@qaC{jh%9q=%K zP!j91c@d?@4BDf8D}OA}CrRPV!-(c2$ONUbXp16v7|ClW>VZ5y zIQ)=4Q?vX}%|7S}d>lgo(a-;+J<@$ZR~6MMR0tR@gDvt4{~ zZKG^#8wxKKLEG05q^6hSHkVg5`=U4nQHBQ1AR85@5+@(MWA(L=KMIeF!=Ivu?(4+`(RV<5H@8+gQNrwfi_222@LBf z6!K-08X_7cm3sWX`;_xw2MSD{l*(qr-R3CsXjbzaUnk-CB%}o}$q}~ogyibG9go5-`rg-Z=b()7t?{Yn8IT(iK3n$^Jo7FVs;AqjOq?Q;7K*fD!>g0J!qP5 z6M~U)h<|BW3YF?zPHIQ+i+HNp;Ba4XsCr|I;Q_B>TKhi%_bA`m`QSjm?Q*jtgXgUs zTKmGU9PAv0x+hUD`rwawZDYr$=hlx{jQ&!Om=FCjk67NJeC%K75%Zyc+D9BYiF(9B zxoJSjA)09}D$JpRSbokbpeVp}0n5U|A_WO|>3`HE6!3+`xvbX8FTq+|Sm+KK)#F7? zfQ5Wd(C!l`N(9W$j|LsJ&j$4a7VD2tKitmG6y^mpl&?nI-|Y01V2Gks+~4f{yx@u4 zsP502E6fT`D9<2Yt~ED5Cm0yF*WR5qKRs1j)u;?H^J^NHsS2n!G@JuJ;0c0I%^ zc#s`DM4Nl4>EIz;$U`uthxiN+@fjZQ%{^37;wW@GHZ)?4j$u25?J%}+Y)7yi#g@Z% z0^1YVPGg(Eb`IMVwgR>pY;)Kau${;D6t-uuUBGq;+ZAkAv0Xzr2rNGx>COv~h<{O4 zJA==-WprfmnXrt`E_@~}fM4J6}Sn>j(=CY4=n1Io%%_drJ~^+0dbHB z#7(0Rl*V!)44dB5~>L)FV(qR0!>NPw1B3?ToO$w)$|map3bGvlvYg_ z&~!1EMpFkh$?AaV>a+OOol4A0qk_fg(nw`wivEz8H;kVoY-xX3qkSOBoN9F=Xk8gg zMl}gv>upa2L2v=cIs##SMt@FkVNf&g+%W)stbAMsVpfD zYji+7(ElmW7#}Env(dcJ^uBDe&KE{yW2eXSLuf?F>Yy zTJV+LBk4~4n%1PM1J7zFimJ^5%bTMW4ilQGd*#0GJ@{cm&@Bv;+kj zionA-EP?k?>IRWBKacn;(ul)^cQj0Rjj?3^Sq847IeTMBN<`Iy6d) z{cOU4DGyG0{C|Z}8O9rO#wP~I+m3gD2dxY@rZn83^6x?15hg%R{<)0Ljs$0mctD9T zPc|1e)ev!VloniPr;vI}MAnJSCxI8A1yNBiW6ggodb`mp@Zx(P24P11-G|#n)#wOj(jn}vL%9`EtT7{@j%br35k=(UPOFEmA zsj03QA0@8#)T<|N0@V`=+@?8);`oVa5ycQ-li+NW1`>X0#OkzVuQB(zRl|KQZ?3Pe zt-!IP34d?Bnx`w&-yTnwehIu%0dhHAP%x@g{#;0FWRTMQUixwLt~KXXsEgjB-q7;> z&(E^UN!w zNd?A4N`Wjyg$&H}Ul8OFApBCfAB5d-@}=16pnuY*;b4@E2u2a|lt~G|QaJ1L$NE^m z1L3hGh>2*P;pfc3BPV0V<(FQgyMiYzLUIu}rN$1e6E!3kMyK_i7Tua86CLu{aRu2# z8o3IwlM-OM-ZgG&;faw!L}+IN?iTGOT8p%`CN~LH$x$zng9Ew?TvhN>N$0v;%Hkj} zn19}h$WlhS16vm??Ce>GCzKqaL}X?i=yQ~TuE|>q(u@?SKjAtg_o?E^!<{UA9}gi6 z?NCZO7Be({%#9y&Be^7M*i$CLp5WI)_WBh4A*npb5C7E~TDexaDk_30!DuMN(N$-A zAWr>@`&?;erdA|Mi2zE5Gglg>pDCV1r+UO5TS4DiZ2J%uBb>_G z_RcN?Z!{c^7(D4ZJwUj!C^GGEjcKlx`E|sz$=K;N0_r-JYxOv2Iy~8O5Y3JHw@ku9 zGarDtkf*t1rgKkh7ID^Bv}K;ldPKIC<0WNb#6c?P&lsDBzuJ+ z8p;4WN->&n5n@LvcoRwNbRu1tm(+Ik*H4Wwq)va0{wFWY^pnnwu;eg4MLKy`3jVVEIh6pjFCIud(8I@OU=chIGg@PDR z6^K~9$aM!?mrd#nSh54n6Q-NkL?^<#Q(Q9$`2V^1hq;qKn8={5W648z#l7lbWNn;G z1c2CHYQ&|#Swo7K)^^`p+bMJLh>aCL1iD|7J)=X~BYQ@!LR1PM27hDOpaN4B3a8Oz z(8%D33>xhvx{9>5Brt?R?c%TpIBa%(=x&I>)NcWH5OZ*1M#b9S2dkBr$KmJkr zH+PWT-ie)k>;Wz5_F2f42KQHU*Fvf>GQ60*IkB_5_DSuX!kryK6B4H|t35;}0 zVx)KBQ*>y_$ws2QeF&I)fFMfSZ5!c{-k35(dke39~My-ATB_! zsqUUgwS@VZM|>0+LDhGJ#kotI!9M}?bA?RPD-I314p2(3k#+8w8tR0UbZsLr(dopg zy4pjW^6Vf^E`L)-d1cE|>|~R&ReEOLt)O)3#)?K@@~8-bsa9ffa=$feL(M5-ZA@75 zp!$U68;cK=GS1+{Ajd$%W=P`5vWVEeza+TZ_y-J#Ex=(&$xcnU6V8NJjepbP*gjqe z0rR$O?*rsBI}1S#C>!>n4?e4QJcNz}Fgg@w%z2%Jf`0@n4-Cj~lTn!*K=Ly>M~eMs zse)s7{Zj~X4%}&f3UrQg4GoEDIj1`DyvyTdONL%h|KyEE)yMb44gnwGsu&{nivXqcOGlfcAt+5${h7B;qKKGYrgE7hs?Qe zlEInK2B{8&VrgJ*`wxNL|7pb(el_$6rx=*p{zD-6s~!@|!iy03 zhJW}Y^U#B-3F9Yb)!Krs0DsI0dn;$XVXdH;hYa;8)|k1jZLA}}|0-gIb%5O1Ax(jb z4slCg2cGV&_UKWOi{UYfl>yGOB41W4{=&lL3cHk4-&4hn&5gUaHurXNvo4@@_sRux zdD(|=PqB2u=O_rI&^a+GFZBM-pufCZ-hU2>!J%hF(^_*GMDAEl@6Zvgr}+XaYLQa~ z(_NT)&QzVO^m=A3IhO&!%)#R{C(d;ND%}8 z!is`lVbB;F#x^DjuOS5QBIIav(Go&-Dl(>O&MVV(&rqeSPLx=~EZ(1R?~@haK7X$u zS<1#p#Rj7|zL$h46x#}I~OmSYSF>BW*j9F0wMpb1!zv2twPoanqy z-#W@M9M^flxaT4k2`G@%#~13sp0$EMh*~%W0ST9V9_tZq8ey2o!9Wr{DzYJI%zILm zg8Kx~gIzI~L!dbDX`=fB%m$!Q(to{OFmVmD+D}nVD-%6*Rsg1$ln)Cm4nY3u@YHs7 z7+i`oRw;3!S$Q`UUkZ2<6T~Z9yTG6QPADcsPe2Uyx5q83UxHV|uzA8*(_FFoSR!}L z6&vazsY!2WP3SsGw0>kj>%u5OmE2&IkQJ|`QGyH-5SEF6vqo1pw*CVeC4W-3qsk#c zAa}6=PhNoWrATf{lK>A0K4glKg(6E}d?+=Tbb-sC@_@^qj`zc~1vn_A=ul<0j+_Mp zMJC4x`&m?_22KL36a6Lk^l}n5iBdA28Q|FIx6UNRDV2kMyH!h@$6as zdk6LVl+!`I{{fF!~N+C$Xs4aJ%yTo_v!YsNfwG!l*jiC%_?i~~UgzDV6$A$pl)9io0W zt#r}zwqETPg|ymR?|$Z;=MJVWHW5t@5z_-p5=*~Vw(Rvk(i1-lNr`V8FRLuT12DCN~G+fP` z8rr$WkZI)=#4zvp_zXIBM|ePcLS{qP0Lh5e&AWAXneHmA$A66kloC3OsE8BdwJ6!} z0HTCYODiI>kcB3wsH^5!MM87)tRO&7WZVv$E$S4)hMlBmhj2SABB^L}Q3xysvMc4h zlNJyPVT0!3^a-v+7;~fmFq>(K)ZsKl>UaU{B@^04*GH8m%}n}rV5PjWx4W~pQVzh4 zKsd2cqqx;J9iEbw+9sz=>vJ89_)T9Cz?^AWry=7-Urpon=UDB$Y# z1M@xZ0j+IdFolFNw8A$0j6KNPsMi7Hx z$L~S01v|A=$OiKGwUCWrQh}j1n%)KEXF&;uDh#_5j4HOtsxXk0pme|h17+~!=jiB! zjfHHbVvT)p8s;sm#h*R=7%n6$ZUQo;oN`x<4`fpIu*nb0kYI_AqMaWQ`&SY`W)i-^z5DTGS=YDjaRl;%EI^s zw6fTkmI4(SQhD4nir3-rMKF)Nm+tap9-=u=)0;!hIZe?F_xow>%K#JKElXlCZn@$+ z$|bV-W|T>pNjP#m==@B>&f5EFCK*}h=iktCqkSN*DR(6WE9vz zY%yQVg!q4i(Zr(kPE0kZ(j4prG%?JBC_*91dtwm*$PQVO5a;wf?#F^Fg9=(hTA>Ii zsNk_UVoR1RAofwn$^E;;)Zn*;N1ZMimXVf; zE80s*TF9p8k3zrbMF5K57J?o7^_saR6!BS>c42>lijCE1;$;Oq(x78R8d;XaO#-;OnN{!HVGb{Y+cdLUnqcu3|#E z3;=gtOU_Y)Xhvx0Nq#ettoqVQZ!qU&08UyzN(ouYe$k%XCra|XDA>8g)#n_~qfmc5 zC{R$Km#4G9LSR^PS0;4E$=*ddnV%uHyLBiR%67u(Fhzfeb6dEeNNE3!23&fs374L0 zE0>;Y!lkJ%2fPr;r4`2v8^fgPabPa3&Js4E^{QswlIAxyHK@(i<`iz)MZSqLGlWq*JT4^h80Jk+Wsx1$?O~E64Z^H4+n-VhQ=D zDNt3EVUf@0i_Jx?@JiFP2m~NdS_Cw38<-Wni5?ZhRO^`QgI0Th7^W;T*8YESnEWI0 zOJV29=}&X!>CY%+bJ>3Qamj|tZ6j{e^6lUv)1Q3QYUoGxhLUMqgrbo2BF`B$_!|p*+_^$A!ZcYV?>W$2$Ze?&_;V{b&%%s z3JJ_2>33?zkG?QhkxW5mCJ}!OuUX=ooQfoun(lgyt;v0nZBEgX1>%s1ut@eJZZC$I z3IQAnH5xiJ3`|G@%918+_968Q0SC}(5mteioA6%(+!2C3Jk(uAcMrCHpin`1M!~|1 zNC|>C3d2>LQ#a$fv~HRXRe!T$aYPmnt~N(e_^oNQQVtNcS|)C<8x4P1!bY-U*=m>U zvHkJA=tj*U9`D$u6Mqp6(5^+^o+qlmBE-VHMS&0~#)(h}^Oi{`C777e3)bnfd8TNM zq18fb?*$vB=5ri)0Y^3!&@^EaGfhCZAOgeHj94O0!c(zZh?9UPAW=z7(H|1j=obn> z?Z4NV0>sK@8gu@cw#t8LGc2bGNvxYVbyy11I6sX9=Ra@?9iJ^Mjb-Hpd`8a=O{K7z zx>DGTCWXzko(j4Yrf`*@-2Ok{{D1T%I6q{dFb{se3GatARBv!S?jJd8UG5(_*+E?K zjlvceYjl*aOGxNINzt@Zzq38ssX9H8|B7)_GbeFen%0dJyS#r?M%-KF-PO$%O@CG6 zBKoV}OsrddX-%iP{;H0W4EvCNCZ354c};6D*2EO%G7aj`+F_I82he)O#@Hq!>3Y%} zRG0k0c$ z5M^S-2_ldQ-x5R?SW{SD4eKJzLSUt^2f4x?WU)QS z2E@7+#0MMeQ<_rF9%0JpQ^g!|UM_y0oWc)t8LpL>-ruj7Ip;%$mZ?qK8-;NOi=cwI zz~W;&!?-{{Ela(zeiVW6fWt&Ne?ts^7dFJw;UPn8t!;m&yP<7otY-SW1_^z6_0pOj zcrezpOY#PjMbOzEWC8#DG=Wr&(TnD#%c(18SIU(l(zVV$o4iT^D3?fIv7{u%xB~uRfhZ&b@I*aa z5g~P;Vz_??ijblz&cCHq9E~IQFA4as>tq_zDvoCVCpA!-l}N+x9jHma7P4wCq4WN+YW zM>Qk9n%QsRYiG4ve6_OIVzHAH{&3vRK7*c2wO4=iIN3>j%~l7*SC?=MCX&@5@zu*B z{dS_OIx4=#vzVjDp{|T9BAKWE(W8_6Z{g7+e8;~R9zA;F(W46Ck>N*)x}^kw2T98J z5Tc$r%{nDqk^iER73?p==jp4}*Y|eH0@djif~{s&ri84MBG#LS@NChBJoX@Oz6yH> zgR6gF(wMu;37^L%dE)X&X(<(qT3`&+yHCleWyg84xP4>iC0?GI925-7ZkKoW zwl`kCyHyrPoepjx@<=A5LsQFCe5vKd#80>kue`OpTnJX!!tutJ3XUlxwu;E8+x=#7 zJI>d`&UoVkk@N7zPWg$(16~Km2wp%^T!?=jUvoFh0+zfPYkGQK9>G6nW+9)_?i8@Z z3ka;I8?fdVrWhA9xRhcuGgHK7Q2dA@+6iHSJSOb5M6?Q)OL#58bx`UU3Rs6{9rCPk z&pPUvInO$d6ek3*(1MqsP?hvOXd?&iWXEWO$wXcaS_@L9D7FG=%kn!7uWRHJcHJ}qrsx; zRXu+_jr-tB37W(-lFBrqVg%X5Q{Z+0a$pmktOIX5z39)tF-l;Y!ne{j4uubkyX_oC zU#~c}kJzAGwfpz4+A$7W$IZ%N0RDfcsP|!TL{X6Klj?{VCe~aGJBPC&Uxe=DFtHnX zwsAOnkfu*)ohZ4sUlAyv#BvzTR$|Lqj58P4nNW5qQ^`!xAJXv1!7DVppT}GBnGmZf zz$NvG{w{j z6zr_FMh63F#`)h4utr-mQ&PF)b=p5vO(5mL0ZeBMVP06MMY=15Ps|rG&w*(1^eNWM zCRtO!mRZur--XYYLji@Nz-=`_Wh|(4#V6H{6W9evNvspN zuvypz6Iey5ify$QK*=y!Ts41UUH^r!d-neb!-oL7j56Suy$`7V-e(LTI~E6V0%_S8 zdE+f4V~F(+mp+22ar6XPKte0x36Q5=&jRKKui{P7A0kHAC&ptn#3sxsi>KUs0gDJCN-(^u zE(JnM;tYEU_o{@yYCpLR{~pLnt2a+vH$*5kXi$wrr-d3qVGf}nb`|H+BUHl!+7qD~ zx(3mW^ig>1NFL7%hq8Z;-WocB=tql74fhcdg<4uul8)XQIy6d7qL`c@rvsIdJ1{xD z6(%PnTV$W|$>|Bu3T&ovu9cn19>Z4{N)!CGhhVE&n-IiCWFs^Ulw|({&=HyO!_>p- zuD<3qqMqFv>XGxzcW4dPvYF{vTiFabs^S|c=yZ9txQ&8MMzVjF!LVD2#b+UPcWrHN zE|+(9#_726WgMtMrK_Lh$K|P$YjF$y7>z?s%Vf=FawbBa*_mwRXQrr3rf?i^9D_Qg zBC+{tp{@2Z$4XMsFW6%wMleHnL5wu}695ch?nTkhsNkwNm@QYsZhZD&8<2ILEED)$ z5L^U&mqB4~^iqEjd_!!FG0T#oTLL!9-x0nKnX(a3uU3VtHd6Xc)(?# zW+0S>)~aai%74P!Z4H^(P-}Wp@3oJfeW)dupP5r( zz23K8dhx|I7`2woTfmrOIaEzKfln;?{C$c)?bF7Y32bMv<*^maw3CR#dItR- z8b5#Zek|vPlSqNrgTs>bJWc#vMpK5Y=XRIv{4rH*M4Zm}J>%1p%kd|c6Gz@(24thT zoF4yR8Qxnjh7_x~0i?5piL~ORg|y<7jkMx4`F1;8$ zcWUHwqbEHIt9i%R=SE-Wq0f!}%wZX?NmzeEsU_<2|GsBUcMR zXql6@0fIJ6fp8PUmyCP%a%y6vItmns(VY2)dCytym^f5D^ucmw0?Pge%h~GDlKo42 z$Vom{vcFHCxsvw+8_$0q z!w9peR+I}-=V!l+WTGFJ5PImoA#b8xwH`5ScpsBZEAUn zTe`HCr)l&L==#sl-iNgJHQKvRdl!Fb?>A}hB0r43Lnpb!yT3=fmrJQPU805Rl~SgZ zy$_10UM(d`Hvit|XpevI^R&mm_Zsc-^L^1?|P>uj#j_<;A%W}{}g}Ga`mV8 z{~F!*n~*q65>F`K>n(^UZ!aY#j$KW_F0@pqqT~vOHw?I^PR-BbEOk%{%oP10^*oI$ zl$JV!wonZ3|EQ6rAu13qudpHcAu_!h>x_(OPi{;2BH)SEX6aqyj!kH|*3I%=PI0Lj zl*>=a>MN~d#k5qG@OfxK&{BU{BArq?(w2!N<{(0K6+&T%}0;?fB0VQ zAh@@3Hs90j=&)D zWIn4!s_7$%WVO_;P#1p@tlrR?Ty+c){m6i1g;Lm_q$;GyaP_aT6TmziAf~X9>7i6ZGOA8{S(O>b6z$gp z$xwfLNJhT|NCq_$ML~z|QafK05@u|WH_-6!694wjKItomj;yY5+go4N( zdUIm8CBK=IC=Tqi6~{z54PiIH>;w-?2)=KQj{7DHIn+2g0o4l-B=kfMaS z{e1#Su6cXXjp#$>HC$L6i0ff95xh(4)s1OpB5H1rnFxPp#!F)uwgtGkC_gd2yM337 zZe*^MQDS3_Odii}Z*OiJZ}O?n zcc9`te|?>gF!NV8W_3sDX}Ta(QkTdFWLpcWBj z+||zx7J+}`Cf#<3IY#y_vjtPugY?Xi#4uJE7OQGYLXHaTHj}X1pv^K{5ZG-YuM4sO zJO70gt3p*fuvQ5qG*q6)P7r+4nSCuVQ$`7oQ5`53~X8H(xj%Y0A;zbt=8d5%739XpdZ@#j_BI`VVIFAyJs zo({0K5F?|4exV?l^irylnxa3Xb0ongg@5{wYZ#dnuYAoSQ){a)wAWV8ph!2hHCo*g z5o4`+U4R;?F)hh5loqIt3Mf=aPDpGeEE)u4Pz4N0f@CBihKAVoIEn~h>pUR(8YHHd z0*QZ#V!pt~l;e-wz^HTK^r^EAlbZL)q|C6RKT-SR$8h+42Ok<(9jEl>>R?MAIMq-W*7)i`S&yrAVk*Gd2#>Yi!V;D@^5Ke7|-Tzd#w`;}SHYAW(l} z*xgg_a3UT7{L*+xqf56WB~^xHu+bSLO*MQU`0@1PU}WYW2QxB%o@{i!U_6I59^kxU zoP1ae22k%QMb2BuAMgeW%J9vw0n>R3np?D{7pAGi3!>gQUc7g(*MTJ*h7rsq5xo;c zj1#yGFa7i(OCZEz@H??MAgV*FFgJe{GCqhQhym|B)~1&}*-INS|$^cSQs!I|AsE`>#$EHnVd%$_9e z7qM-?K&8fx>>JdO5e95DWV2V$ko_7MeDWc%$8xccr9B3f55fNp@zn^-Ehc}*%_7Nf z8}TEw#{4=z___e0z06bU>8 z>t%rt0>F1Zd`A(^u+X>uAVDcrpa4(w;-rObXD+# z5uVf;+kM+^p@(EXdcU_3r5)VW|J^9z5Z$of+!Y&h&Zo$V!#$Str+ zHgmw!(}eRccH&?MrL>DRRpl3Eh26N$?Te~=YJD(gXKiHix&0|j3}8)3;V6+N`J7}5 zs8sAlGJN5v18tPD5wdz>Bu5em3Z(_iL>3>goB*Ia{;k-ml1qR8Ae4W?EKIFj{b7`_ z=!+0z+lHJLB_zHah)Ae*iLIMA3LK;)?ACQ2HxrfM$@KCluvl7k&NY4K!67k5sp0e zxyW%WuJ{)_AU!tXg^_b>)R=EhxeL>cXg^O8Sx&#v?;%sI0|9^XhV6m}auK?OXS+yh zt7U^pBbCP12@Z+K^g4xgh)!&qR%(q8I!g}mL6sr=hr0Bx*ha8o3S#0}toY!mMto2_ z7curL;DdtJ_;MjWm~YAlwVPy`)A*nP3unU@6s8&doga`)8l73=UX2)W^qvJH78Br$ z9aAuG<;`0K^LBsUyj|cQ!D?u3%G}DETLm9Xz_`_j!AI|fk3Yy@e>FHDn@6?L!h*O* zx$s!Cg{cIs5qwQ+e%=R*UR*$yC}jR*yraK!00;w^48Rf)GDOO=(?GcN9B9%=gBkYR zLC+oX+!0<34zXGAm}esJ1p`hdGO%@#20%-KhlCfeJBEMKkErs{(@USD?+*f137$)g zaSj{fN3b2mmcw=e+Y^AzhYFB(DX#_VL?9-Ey9>&HgPUg@! z!d~nu83F-S=y(*vhq4Vnefl%p;ea_(Hc*G6Y&^VWer^oL5PvgdAY=wO2==`=5D%;> zGVeIO2x~6Z&=jq|b+ial6sQ`6Rdtqnmbxq5Q}lm_Y>ZuK6E;SqG6oh1jfWveN-?d( zV^4Qc*Lm{RU0jDa5bp@%zUqvT^{CmRU{duNtDn|=8%mL9n4U=>7O*e_&;s-UC)5SX zJI4PQVF%Tm_|gVDU0BAMlgKPyJs_f2w-f?qhee z*8I}w4^0L?XmWLTckBG*bzj9!e#-D3B5#Fs{S76)G#N9&dXWRAC z0^^RR)X;ouq%`CMlSiW=g+?9I2K0X%W7$HHV_y_!v6@t&0#@voi*WG6Vp>iFdqhIi zKP~J{2N3uRHR@GYg3aVT>W+=%egNad$9O>#3H}a3JUs{M4s2YV(0DRg&*}1b4_E*7sw7Cc76KljlfJPBa(l1Bhb!A?tICW(H zKLMeVFcxASbuCnW`seTg*!lEV%+3YoX@hhu4$|cEGd$H9^|Uav*zg6kj@WE;C_+9d zLQBL7H(l?7Y}EtsM1g;eDsJA;kY-x&N0Eh!Uz&VfISUk2s+FIf2NZn28w7jyGaS5? zAfpDQG9?X|br>)e79JZlN|@UL4&FhP&cVch1W&aIJe9!UVc3@d@csB4BHYLXgm>ox zqHc^B;3Fa0gVrp-N8%$A{0S~W!Jlwr3UrZxRi*bQyqp7dykmdK!Y+#TSjMSpEu0sn zq-qfrF0i-4sEtZhSZq%5+Ot;dp{tQib~@?f|nGC={0^ihhQ=6=IlTo3e zk)WX;;**Xq&NQPsb78L0+?Woes;DDLy2T04pN5?0A&(!yY?++K${uRmv=X}uLCqthCp8jZ`!i9Hg~Lip`ioMTv#}O`G~_d zQwD+-q9!DmmTGKB1mc9*4P1k3z|p|spxKeUhIXXiYx2$t;g>dC@1+&QTYK!7*6PX2 zw^mTEO~ilGs$NMs;wJcRMJQ;r|BJr3hKiWEu=r=>#j$LGbs+RoAjfj`L!M|R+)9bZ z9s{c$E$sAsDNLpMH5XeuD`xU7ofTKf=LExj#9M*DEolc01qd_LATwW<8GL(8m!t{; zRSYDULhSKB9J)dvw2;k3NG)k*LIq*ZU@`Dl7560FlS(g6@^+AuHWzl8$5 z+EY-8+l)$l(M$;>ow3IrCmsN&is$KH6BK{(nqb-yittBB>9kSzdGQwg;Tqu-TAVm| zz5dZs4r+9;`+B0qC=jMN`0y4B`rltaONrtY{d>KMW7Mv0!seqiQ!VwC- z(7GhDoKQd&20OG5VLie-CxeQKEGIKSyKrQ^mtK7KQQa48!*JIp;Cw(S#tRf%r2yq% z%cG$xsxA)HMVEjSAd5&I?04cQ z1eL?PU;t7MiIf~`1qXrS`qr9045q@0HZWCj5gQdx)0OnpQnHfdKZsx&Tcu@_R=-3K SO@fz-Ya6i(*!jQeBbg9M1)>xH delta 42633 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≶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 NM(hH1{x4O^nJ*?xdYS+L 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 b7fe4b7c6..1595d0d96 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestCompoundAssignments.as @@ -50,4 +50,4 @@ package tests class MyTest { public var attr:int = 0; -} \ No newline at end of file +}