Fixed #2029 Simplify expressions stripping getlex and also ignoring some types of expressions

This commit is contained in:
Jindra Petřík
2023-10-01 18:21:38 +02:00
parent 6e3bc36007
commit 3f6223fe0f
10 changed files with 37 additions and 16 deletions
@@ -30,7 +30,7 @@ import java.util.Objects;
*
* @author JPEXS
*/
public class GetLexAVM2Item extends AVM2Item implements SimpleValue {
public class GetLexAVM2Item extends AVM2Item {
public Multiname propertyName;
@@ -70,12 +70,7 @@ public class GetLexAVM2Item extends AVM2Item implements SimpleValue {
@Override
public boolean hasReturnValue() {
return true;
}
@Override
public boolean isSimpleValue() {
return true;
}
}
@Override
public int hashCode() {
@@ -24,6 +24,7 @@ import com.jpexs.decompiler.flash.ecma.EcmaType;
import com.jpexs.decompiler.graph.CompilationException;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SimpleValue;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.TypeItem;
import com.jpexs.decompiler.graph.model.UnaryOpItem;
@@ -45,7 +46,9 @@ public class TypeOfAVM2Item extends UnaryOpItem {
if (dependencies.contains(value)) {
return false;
}
dependencies.add(value);
if (!((value instanceof SimpleValue) && ((SimpleValue)value).isSimpleValue())) {
dependencies.add(value);
}
return value.isCompileTime(dependencies);
}
@@ -31,6 +31,7 @@ import com.jpexs.decompiler.graph.GraphPart;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SimpleValue;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
@@ -144,7 +145,9 @@ public class SetVariableActionItem extends ActionItem implements SetTypeActionIt
if (dependencies.contains(value)) {
return false;
}
dependencies.add(value);
if (!((value instanceof SimpleValue) && ((SimpleValue)value).isSimpleValue())) {
dependencies.add(value);
}
return value.isCompileTime(dependencies);
}
@@ -25,6 +25,7 @@ import com.jpexs.decompiler.graph.CompilationException;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphSourceItemPos;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.SimpleValue;
import com.jpexs.decompiler.graph.SourceGenerator;
import com.jpexs.decompiler.graph.model.LocalData;
import java.util.List;
@@ -94,7 +95,9 @@ public class TypeOfActionItem extends ActionItem {
if (dependencies.contains(value)) {
return false;
}
dependencies.add(value);
if (!((value instanceof SimpleValue) && ((SimpleValue)value).isSimpleValue())) {
dependencies.add(value);
}
return value.isCompileTime(dependencies);
}