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 a5e33e268..984cd6193 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 @@ -2707,9 +2707,9 @@ public class AVM2Graph extends Graph { boolean move = true; if (parent instanceof SetTypeAVM2Item) { SetTypeAVM2Item setType = (SetTypeAVM2Item) parent; - if (setType.getValue() == item) { //chained assignment + if (setType.getValue().getNotCoerced() == item || setType.getObject() == item) { //chained assignment move = false; - } + } } if (move) { foundSetLoc.setVal((SetLocalAVM2Item) item); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java index 9a3d0c1cf..dd8a4c081 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java @@ -125,7 +125,14 @@ public abstract class AVM2Item extends GraphTargetItem { //but removing this fails testNames test FindPropertyAVM2Item fp = (FindPropertyAVM2Item) object.getThroughDuplicate(); if (fp.propertyName instanceof FullMultinameAVM2Item) { + + if (propertyName instanceof FullMultinameAVM2Item) { + if (!((FullMultinameAVM2Item) propertyName).property) { + ((FullMultinameAVM2Item) fp.propertyName).property = false; // for constructprop + } + } propertyName = fp.propertyName; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructPropAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructPropAVM2Item.java index aafb07850..2565a65af 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructPropAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/ConstructPropAVM2Item.java @@ -86,7 +86,7 @@ public class ConstructPropAVM2Item extends AVM2Item { @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException { writer.append("new "); - formatProperty(writer, object, propertyName, localData, isStatic); + formatProperty(writer, object, propertyName, localData, isStatic); writer.spaceBeforeCallParenthesies(args.size()); writer.append("("); for (int a = 0; a < args.size(); a++) {