AS3: For..in fix

This commit is contained in:
Jindra Petk
2013-04-20 15:38:54 +02:00
parent 9a728060bd
commit 20445cfb38
2 changed files with 4 additions and 4 deletions

View File

@@ -1513,15 +1513,15 @@ public class AVM2Graph extends Graph {
for (int i = 0; i < list.size(); i++) {
if (list.get(i) instanceof WhileItem) {
WhileItem w = (WhileItem) list.get(i);
if (w.expression instanceof HasNextTreeItem) {
if ((!w.expression.isEmpty()) && (w.expression.get(w.expression.size() - 1) instanceof HasNextTreeItem)) {
if (!w.commands.isEmpty()) {
if (w.commands.get(0) instanceof SetTypeTreeItem) {
SetTypeTreeItem sti = (SetTypeTreeItem) w.commands.remove(0);
GraphTargetItem gti = sti.getValue().getNotCoerced();
if (gti instanceof NextValueTreeItem) {
list.set(i, new ForEachInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression).collection), w.commands));
list.set(i, new ForEachInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression.get(w.expression.size() - 1)).collection), w.commands));
} else if (gti instanceof NextNameTreeItem) {
list.set(i, new ForInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression).collection), w.commands));
list.set(i, new ForInTreeItem(w.src, w.loop, new InTreeItem(null, sti.getObject(), ((HasNextTreeItem) w.expression.get(w.expression.size() - 1)).collection), w.commands));
}
}
}

View File

@@ -37,7 +37,7 @@ public class NotCompileTimeTreeItem extends TreeItem {
@Override
public String toString(ConstantPool constants, HashMap<Integer, String> localRegNames, List<String> fullyQualifiedNames) {
return "<NOTCOMPILETIME>";
return object.toString(constants, localRegNames, fullyQualifiedNames);
}
@Override