#1145 AS3 better declaration type detection,

better convert_x instruction handling
This commit is contained in:
Jindra Petřík
2016-02-16 23:00:17 +01:00
parent 07b0e68bba
commit be8e4df4c7
16 changed files with 291 additions and 86 deletions

View File

@@ -17,6 +17,7 @@
package com.jpexs.decompiler.graph;
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
import com.jpexs.decompiler.flash.abc.avm2.model.ConvertAVM2Item;
import com.jpexs.decompiler.flash.abc.avm2.model.FloatValueAVM2Item;
import com.jpexs.decompiler.flash.abc.avm2.model.IntegerValueAVM2Item;
import com.jpexs.decompiler.flash.abc.avm2.model.NameValuePair;
@@ -331,7 +332,14 @@ public abstract class GraphTargetItem implements Serializable, Cloneable {
public GraphTextWriter appendTry(GraphTextWriter writer, LocalData localData, String implicitCoerce) throws InterruptedException {
GraphTargetItem t = this;
if (!implicitCoerce.isEmpty() && Configuration.autoDeobfuscate.get()) {
if (!implicitCoerce.isEmpty()) { //if implicit coerce equals explicit
if (t instanceof ConvertAVM2Item) {
if (implicitCoerce.equals((((ConvertAVM2Item) t).type.toString()))) {
t = t.value;
}
}
}
if (!implicitCoerce.isEmpty() && Configuration._simplifyExpressions.get()) {
t = t.simplify(implicitCoerce);
}
return t.appendTo(writer, localData);