From fb010614b40feac56f7dda2de60e4bdd0b3c4564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Mon, 30 Sep 2024 18:46:58 +0200 Subject: [PATCH] Fixed: #2335 AS3 direct editation - Type coercion of `&&` and `||` operators --- CHANGELOG.md | 2 + .../flash/SourceGeneratorLocalData.java | 5 + .../parser/script/AVM2SourceGenerator.java | 155 ++++++++++++++++-- .../abc/avm2/parser/script/CallAVM2Item.java | 30 ++++ .../abc/avm2/parser/script/ConstAVM2Item.java | 3 +- .../abc/avm2/parser/script/NameAVM2Item.java | 4 + .../abc/avm2/parser/script/NamespaceItem.java | 4 +- .../avm2/parser/script/PropertyAVM2Item.java | 34 +++- .../abc/avm2/parser/script/SlotAVM2Item.java | 3 +- .../parser/script/UnresolvedAVM2Item.java | 4 +- .../ActionScript3ClassicAirDecompileTest.java | 13 ++ .../ActionScript3ClassicDecompileTest.java | 13 ++ .../testdata/as3_new/bin/as3_new.air.swf | Bin 31030 -> 31355 bytes .../testdata/as3_new/bin/as3_new.flex.swf | Bin 41271 -> 41724 bytes libsrc/ffdec_lib/testdata/as3_new/src/Main.as | 1 + .../as3_new/src/tests/TestAndOrCoercion.as | 41 +++++ 16 files changed, 281 insertions(+), 31 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/as3_new/src/tests/TestAndOrCoercion.as diff --git a/CHANGELOG.md b/CHANGELOG.md index 3862a128c..7d9fc7d47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ All notable changes to this project will be documented in this file. - [#2331] AS1/2 lite - support for fscommand2, `#strict` directive - [#2332] Imported fonts by class name not available in texts - [#2330] Windows EXE launcher (+ CLI) does not respect current working directory +- [#2335] AS3 direct editation - Type coercion of `&&` and `||` operators ## [21.1.0] - 2024-09-23 ### Added @@ -3609,6 +3610,7 @@ Major version of SWF to XML export changed to 2. [#2331]: https://www.free-decompiler.com/flash/issues/2331 [#2332]: https://www.free-decompiler.com/flash/issues/2332 [#2330]: https://www.free-decompiler.com/flash/issues/2330 +[#2335]: https://www.free-decompiler.com/flash/issues/2335 [#943]: https://www.free-decompiler.com/flash/issues/943 [#1812]: https://www.free-decompiler.com/flash/issues/1812 [#2287]: https://www.free-decompiler.com/flash/issues/2287 diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java index c71f3a259..392e61439 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SourceGeneratorLocalData.java @@ -190,6 +190,11 @@ public class SourceGeneratorLocalData implements Serializable { * Opened namespaces */ public List openedNamespaces = new ArrayList<>(); + + /** + * Current method return type + */ + public GraphTargetItem returnType = null; /** * Gets full class name. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java index d317e7346..2749d95d1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AVM2SourceGenerator.java @@ -31,6 +31,7 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.stack.PopScopeIns; import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.ApplyTypeAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.BooleanAVM2Item; +import com.jpexs.decompiler.flash.abc.avm2.model.CoerceAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.DecimalValueAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.DoubleValueAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.Float4ValueAVM2Item; @@ -86,6 +87,7 @@ import com.jpexs.decompiler.graph.ScopeStack; import com.jpexs.decompiler.graph.SourceGenerator; import com.jpexs.decompiler.graph.TypeItem; import com.jpexs.decompiler.graph.model.AndItem; +import com.jpexs.decompiler.graph.model.BinaryOpItem; import com.jpexs.decompiler.graph.model.BreakItem; import com.jpexs.decompiler.graph.model.CommaExpressionItem; import com.jpexs.decompiler.graph.model.ContinueItem; @@ -104,6 +106,7 @@ import com.jpexs.decompiler.graph.model.SwitchItem; import com.jpexs.decompiler.graph.model.TernarOpItem; import com.jpexs.decompiler.graph.model.TrueItem; import com.jpexs.decompiler.graph.model.WhileItem; +import com.jpexs.helpers.Helper; import com.jpexs.helpers.Reference; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -779,17 +782,17 @@ public class AVM2SourceGenerator implements SourceGenerator { generateTraitsPhase4(importedClasses, openedNamespaces, initScope, isInterface, baseClassName, superName, true, localData, traitItems, classInfo.static_traits, st, new HashMap<>(), class_index, false); int init; if (iinit == null || isInterface) { - instanceInfo.iinit_index = init = method(false, 0, false, isInterface, false, new ArrayList<>(), pkg, false, new ArrayList<>(), initScope + 1, false, 0, isInterface ? null : baseClassName, extendsVal != null ? extendsVal.toString() : null, true, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), TypeItem.UNBOUNDED/*?? FIXME*/); + instanceInfo.iinit_index = init = method(null, false, 0, false, isInterface, false, new ArrayList<>(), pkg, false, new ArrayList<>(), initScope + 1, false, 0, isInterface ? null : baseClassName, extendsVal != null ? extendsVal.toString() : null, true, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), TypeItem.UNBOUNDED/*?? FIXME*/); } else { MethodAVM2Item m = (MethodAVM2Item) iinit; List allIinitVariables = new ArrayList<>(); allIinitVariables.addAll(iinitVariables); allIinitVariables.addAll(m.subvariables); - instanceInfo.iinit_index = init = method(false, pkg.toRawString().isEmpty() ? str(baseClassName + "/" + baseClassName) : str(pkg.toRawString() + ":" + baseClassName + "/" + baseClassName), false, false, false, new ArrayList<>(), pkg, m.needsActivation, allIinitVariables, initScope + 1, m.hasRest, m.line, baseClassName, extendsVal != null ? extendsVal.toString() : null, true, localData, m.paramTypes, m.paramNames, m.paramValues, m.body, TypeItem.UNBOUNDED/*?? FIXME*/); + instanceInfo.iinit_index = init = method(null, false, pkg.toRawString().isEmpty() ? str(baseClassName + "/" + baseClassName) : str(pkg.toRawString() + ":" + baseClassName + "/" + baseClassName), false, false, false, new ArrayList<>(), pkg, m.needsActivation, allIinitVariables, initScope + 1, m.hasRest, m.line, baseClassName, extendsVal != null ? extendsVal.toString() : null, true, localData, m.paramTypes, m.paramNames, m.paramValues, m.body, TypeItem.UNBOUNDED/*?? FIXME*/); } //Class initializer - int cinit_index = method(true, str(""), false, false, false, new ArrayList<>(), pkg, cinitNeedsActivation, cinitVariables, initScope + (implementsStr.isEmpty() ? 0 : 1), false, 0, isInterface ? null : baseClassName, superName, false, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), commands, TypeItem.UNBOUNDED); + int cinit_index = method(null, true, str(""), false, false, false, new ArrayList<>(), pkg, cinitNeedsActivation, cinitVariables, initScope + (implementsStr.isEmpty() ? 0 : 1), false, 0, isInterface ? null : baseClassName, superName, false, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), commands, TypeItem.UNBOUNDED); MethodBody cinitBody = abcIndex.getSelectedAbc().findBody(cinit_index); @@ -821,11 +824,13 @@ public class AVM2SourceGenerator implements SourceGenerator { int ns = -1; String tname = null; boolean isConst = false; + GraphTargetItem type = null; if (ti instanceof SlotAVM2Item) { val = ((SlotAVM2Item) ti).value; isStatic = ((SlotAVM2Item) ti).isStatic(); ns = genNs(importedClasses, pkg, ((SlotAVM2Item) ti).pkg, openedNamespaces, localData, ((SlotAVM2Item) ti).line); tname = ((SlotAVM2Item) ti).var; + type = ((SlotAVM2Item) ti).type; } if (ti instanceof ConstAVM2Item) { val = ((ConstAVM2Item) ti).value; @@ -833,6 +838,7 @@ public class AVM2SourceGenerator implements SourceGenerator { ns = genNs(importedClasses, pkg, ((ConstAVM2Item) ti).pkg, openedNamespaces, localData, ((ConstAVM2Item) ti).line); tname = ((ConstAVM2Item) ti).var; isConst = true; + type = ((ConstAVM2Item) ti).type; if (((ConstAVM2Item) ti).type.toString().equals("Namespace")) { continue; } @@ -853,6 +859,7 @@ public class AVM2SourceGenerator implements SourceGenerator { && !(val instanceof NullAVM2Item) && !(val instanceof UndefinedAVM2Item) ) { + val = handleAndOrCoerce(val, type); initcode.add(ins(AVM2Instructions.GetLocal0)); localData.isStatic = false; initcode.addAll(toInsList(val.toSource(localData, this))); @@ -875,6 +882,7 @@ public class AVM2SourceGenerator implements SourceGenerator { classInfo.cinit_index = cinit_index; if (initBody != null) { + initBody.markOffsets(); initBody.autoFillStats(abcIndex.getSelectedAbc(), initScope + 1, true); } instanceInfo.interfaces = new int[implementsStr.size()]; @@ -1068,8 +1076,47 @@ public class AVM2SourceGenerator implements SourceGenerator { return false; } + public int methodHeader(boolean isStatic, int name_index, boolean subMethod, boolean isInterface, boolean isNative, List callStack, DottedChain pkg, boolean needsActivation, List subvariables, int initScope, boolean hasRest, int line, String classBaseName, String superType, boolean constructor, SourceGeneratorLocalData localData, List paramTypes, List paramNames, List paramValues, List body, GraphTargetItem retType) throws CompilationException { + //Reference hasArgs = new Reference<>(Boolean.FALSE); + //calcRegisters(localData,needsActivation,paramNames,subvariables,body, hasArgs); + SourceGeneratorLocalData newlocalData = new SourceGeneratorLocalData(new HashMap<>(), 1, true, 0); + newlocalData.currentClassBaseName = classBaseName; + newlocalData.pkg = localData.pkg; + newlocalData.callStack.addAll(localData.callStack); + newlocalData.traitUsages = localData.traitUsages; + newlocalData.currentScript = localData.currentScript; + newlocalData.scriptIndex = localData.scriptIndex; + newlocalData.documentClass = localData.documentClass; + newlocalData.privateNs = localData.privateNs; + newlocalData.protectedNs = localData.protectedNs; + newlocalData.isStatic = isStatic; + newlocalData.subMethod = subMethod; + newlocalData.numberContext = localData.numberContext; + newlocalData.returnType = retType; + localData = newlocalData; + + localData.activationReg = 0; int[] param_types = new int[paramTypes.size()]; + ValueKind[] optional = new ValueKind[paramValues.size()]; + //int[] param_names = new int[paramNames.size()]; + for (int i = 0; i < paramTypes.size(); i++) { + param_types[i] = typeName(localData, paramTypes.get(i)); + //param_names[i] = str(paramNames.get(i)); + } + + for (int i = 0; i < paramValues.size(); i++) { + optional[i] = getValueKind(Namespace.KIND_NAMESPACE/*FIXME*/, paramTypes.get(paramTypes.size() - paramValues.size() + i), paramValues.get(i), false); + if (optional[i] == null) { + throw new CompilationException("Default value must be compiletime constant", line); + } + } + + MethodInfo mi = new MethodInfo(param_types, constructor ? 0 : typeName(localData, retType), name_index, 0, optional, new int[0]/*no param_names*/); + return abcIndex.getSelectedAbc().addMethodInfo(mi); + } + /** * Gets method. + * @param replaceMethodIndex Which method info to replace. Null = create new. * @param isStatic Is static * @param name_index Name index * @param subMethod Sub method @@ -1094,7 +1141,7 @@ public class AVM2SourceGenerator implements SourceGenerator { * @return Method index * @throws CompilationException On compilation error */ - public int method(boolean isStatic, int name_index, boolean subMethod, boolean isInterface, boolean isNative, List callStack, DottedChain pkg, boolean needsActivation, List subvariables, int initScope, boolean hasRest, int line, String classBaseName, String superType, boolean constructor, SourceGeneratorLocalData localData, List paramTypes, List paramNames, List paramValues, List body, GraphTargetItem retType) throws CompilationException { + public int method(Integer replaceMethodIndex, boolean isStatic, int name_index, boolean subMethod, boolean isInterface, boolean isNative, List callStack, DottedChain pkg, boolean needsActivation, List subvariables, int initScope, boolean hasRest, int line, String classBaseName, String superType, boolean constructor, SourceGeneratorLocalData localData, List paramTypes, List paramNames, List paramValues, List body, GraphTargetItem retType) throws CompilationException { //Reference hasArgs = new Reference<>(Boolean.FALSE); //calcRegisters(localData,needsActivation,paramNames,subvariables,body, hasArgs); SourceGeneratorLocalData newlocalData = new SourceGeneratorLocalData(new HashMap<>(), 1, true, 0); @@ -1110,6 +1157,7 @@ public class AVM2SourceGenerator implements SourceGenerator { newlocalData.isStatic = isStatic; newlocalData.subMethod = subMethod; newlocalData.numberContext = localData.numberContext; + newlocalData.returnType = retType; localData = newlocalData; localData.activationReg = 0; @@ -1393,6 +1441,11 @@ public class AVM2SourceGenerator implements SourceGenerator { } MethodInfo mi = new MethodInfo(param_types, constructor ? 0 : typeName(localData, retType), name_index, 0, optional, new int[0]/*no param_names*/); + + if (replaceMethodIndex != null) { + mi = abcIndex.getSelectedAbc().method_info.get(replaceMethodIndex); + } + if (hasArguments) { mi.setFlagNeed_Arguments(); } @@ -1446,7 +1499,7 @@ public class AVM2SourceGenerator implements SourceGenerator { localData.callStack.add(mbody); List src = body == null ? new ArrayList<>() : generate(localData, body); - mbody.method_info = abcIndex.getSelectedAbc().addMethodInfo(mi); + mbody.method_info = replaceMethodIndex != null ? replaceMethodIndex : abcIndex.getSelectedAbc().addMethodInfo(mi); ArrayList mbodyCode = toInsList(src); mbody.setCode(new AVM2Code(mbodyCode)); @@ -1567,7 +1620,11 @@ public class AVM2SourceGenerator implements SourceGenerator { abcIndex.getSelectedAbc().addMethodBody(mbody); mindex = mbody.method_info; } else { - mindex = abcIndex.getSelectedAbc().addMethodInfo(mi); + if (replaceMethodIndex != null) { + mindex = replaceMethodIndex; + } else { + mindex = abcIndex.getSelectedAbc().addMethodInfo(mi); + } } return mindex; @@ -1941,10 +1998,42 @@ public class AVM2SourceGenerator implements SourceGenerator { suffix = "set"; } - ((TraitMethodGetterSetter) traits[k]).method_info = method(mai.isStatic(), methodName(mai.outsidePackage, localData.pkg, mai.functionName, mai.pkg, className, mai.customNamespace, suffix), false, isInterface, mai.isNative, new ArrayList<>(), localData.pkg, mai.needsActivation, mai.subvariables, methodInitScope + (mai.isStatic() ? 0 : 1), mai.hasRest, mai.line, className, superName, false, localData, mai.paramTypes, mai.paramNames, mai.paramValues, mai.body, mai.retType); + ((TraitMethodGetterSetter) traits[k]).method_info = methodHeader(mai.isStatic(), methodName(mai.outsidePackage, localData.pkg, mai.functionName, mai.pkg, className, mai.customNamespace, suffix), false, isInterface, mai.isNative, new ArrayList<>(), localData.pkg, mai.needsActivation, mai.subvariables, methodInitScope + (mai.isStatic() ? 0 : 1), mai.hasRest, mai.line, className, superName, false, localData, mai.paramTypes, mai.paramNames, mai.paramValues, mai.body, mai.retType); } else if (item instanceof FunctionAVM2Item) { FunctionAVM2Item fai = (FunctionAVM2Item) item; - ((TraitFunction) traits[k]).method_info = method(false, methodName(false/*?*/, localData.pkg, fai.functionName, fai.pkg, null, null, ""), false, isInterface, fai.isNative, new ArrayList<>(), localData.pkg, fai.needsActivation, fai.subvariables, methodInitScope, fai.hasRest, fai.line, className, superName, false, localData, fai.paramTypes, fai.paramNames, fai.paramValues, fai.body, fai.retType); + ((TraitFunction) traits[k]).method_info = methodHeader(false, methodName(false/*?*/, localData.pkg, fai.functionName, fai.pkg, null, null, ""), false, isInterface, fai.isNative, new ArrayList<>(), localData.pkg, fai.needsActivation, fai.subvariables, methodInitScope, fai.hasRest, fai.line, className, superName, false, localData, fai.paramTypes, fai.paramNames, fai.paramValues, fai.body, fai.retType); + } + } + + abcIndex.refreshSelected(); + + for (int k = 0; k < items.size(); k++) { + GraphTargetItem item = items.get(k); + if (traits[k] == null) { + continue; + } + if ((item instanceof MethodAVM2Item) || (item instanceof GetterAVM2Item) || (item instanceof SetterAVM2Item)) { + MethodAVM2Item mai = (MethodAVM2Item) item; + if (!isScriptTraits && mai.isStatic() != generateStatic) { + continue; + } + for (List ln : mai.allOpenedNamespaces) { + for (NamespaceItem n : ln) { + n.resolveCustomNs(abcIndex, importedClasses, localData.pkg, ln, localData); + } + } + String suffix = null; + if (item instanceof GetterAVM2Item) { + suffix = "get"; + } + if (item instanceof SetterAVM2Item) { + suffix = "set"; + } + + ((TraitMethodGetterSetter) traits[k]).method_info = method(((TraitMethodGetterSetter) traits[k]).method_info, mai.isStatic(), methodName(mai.outsidePackage, localData.pkg, mai.functionName, mai.pkg, className, mai.customNamespace, suffix), false, isInterface, mai.isNative, new ArrayList<>(), localData.pkg, mai.needsActivation, mai.subvariables, methodInitScope + (mai.isStatic() ? 0 : 1), mai.hasRest, mai.line, className, superName, false, localData, mai.paramTypes, mai.paramNames, mai.paramValues, mai.body, mai.retType); + } else if (item instanceof FunctionAVM2Item) { + FunctionAVM2Item fai = (FunctionAVM2Item) item; + ((TraitFunction) traits[k]).method_info = method(((TraitFunction) traits[k]).method_info, false, methodName(false/*?*/, localData.pkg, fai.functionName, fai.pkg, null, null, ""), false, isInterface, fai.isNative, new ArrayList<>(), localData.pkg, fai.needsActivation, fai.subvariables, methodInitScope, fai.hasRest, fai.line, className, superName, false, localData, fai.paramTypes, fai.paramNames, fai.paramValues, fai.body, fai.retType); } } } @@ -2203,7 +2292,7 @@ public class AVM2SourceGenerator implements SourceGenerator { localData.importedClasses = importedClasses; localData.openedNamespaces = openedNamespaces; - int sinit_index = method(true, str(""), false, false, false, new ArrayList<>(), null, sinitNeedsActivation, sinitVariables, 0, false, 0, null, null, false, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), commands, TypeItem.UNBOUNDED); + int sinit_index = method(null, true, str(""), false, false, false, new ArrayList<>(), null, sinitNeedsActivation, sinitVariables, 0, false, 0, null, null, false, localData, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), commands, TypeItem.UNBOUNDED); mb = abcIndex.getSelectedAbc().findBody(sinit_index); @@ -2373,30 +2462,30 @@ public class AVM2SourceGenerator implements SourceGenerator { * @param isType Is type * @return True if found */ - public static boolean searchPrototypeChain(Integer namespaceSuffix, List otherNs, int privateNs, int protectedNs, boolean instanceOnly, AbcIndexing abc, DottedChain pkg, String obj, String propertyName, Reference outName, Reference outNs, Reference outPropNs, Reference outPropNsKind, Reference outPropNsIndex, Reference outPropType, Reference outPropValue, Reference outPropValueAbc, Reference isType) { + public static boolean searchPrototypeChain(Integer namespaceSuffix, List otherNs, int privateNs, int protectedNs, boolean instanceOnly, AbcIndexing abc, DottedChain pkg, String obj, String propertyName, Reference outName, Reference outNs, Reference outPropNs, Reference outPropNsKind, Reference outPropNsIndex, Reference outPropType, Reference outPropValue, Reference outPropValueAbc, Reference isType, Reference outPropTrait) { // private and protected namespaces first so we find overriding functions before overridden functions if (namespaceSuffix != null) { - if (searchPrototypeChain(namespaceSuffix, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (searchPrototypeChain(namespaceSuffix, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { return true; } } - if (searchPrototypeChain(privateNs, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (searchPrototypeChain(privateNs, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { return true; } - if (searchPrototypeChain(protectedNs, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (searchPrototypeChain(protectedNs, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { return true; } for (int ns : otherNs) { - if (searchPrototypeChain(ns, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (searchPrototypeChain(ns, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { return true; } } - return searchPrototypeChain(0, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType); + return searchPrototypeChain(0, instanceOnly, abc, pkg, obj, propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait); } - private static boolean searchPrototypeChain(int selectedNs, boolean instanceOnly, AbcIndexing abc, DottedChain pkg, String obj, String propertyName, Reference outName, Reference outNs, Reference outPropNs, Reference outPropNsKind, Reference outPropNsIndex, Reference outPropType, Reference outPropValue, Reference outPropValueAbc, Reference isType) { + private static boolean searchPrototypeChain(int selectedNs, boolean instanceOnly, AbcIndexing abc, DottedChain pkg, String obj, String propertyName, Reference outName, Reference outNs, Reference outPropNs, Reference outPropNsKind, Reference outPropNsIndex, Reference outPropType, Reference outPropValue, Reference outPropValueAbc, Reference isType, Reference outPropTrait) { isType.setVal(false); AbcIndexing.TraitIndex sp = abc.findScriptProperty(pkg.addWithSuffix(propertyName)); if (sp == null) { @@ -2419,6 +2508,7 @@ public class AVM2SourceGenerator implements SourceGenerator { outPropType.setVal(sp.returnType); outPropValue.setVal(sp.value); outPropValueAbc.setVal(sp.abc); + outPropTrait.setVal(sp.trait); return true; } return false; @@ -2902,7 +2992,7 @@ public class AVM2SourceGenerator implements SourceGenerator { localData.scopeStack.add(new PropertyAVM2Item(null, false, item.functionName, "" /*??*/, abcIndex, new ArrayList<>(), localData.callStack)); } AVM2ConstantPool constants = abcIndex.getSelectedAbc().constants; - ret.add(ins(AVM2Instructions.NewFunction, method(false, constants.getStringId(item.functionName, true), true, false, false, localData.callStack, localData.pkg, item.needsActivation, item.subvariables, 0 /*Set later*/, item.hasRest, item.line, localData.currentClassBaseName, null, false, localData, item.paramTypes, item.paramNames, item.paramValues, item.body, item.retType))); + ret.add(ins(AVM2Instructions.NewFunction, method(null, false, constants.getStringId(item.functionName, true), true, false, false, localData.callStack, localData.pkg, item.needsActivation, item.subvariables, 0 /*Set later*/, item.hasRest, item.line, localData.currentClassBaseName, null, false, localData, item.paramTypes, item.paramNames, item.paramValues, item.body, item.retType))); if (!item.functionName.isEmpty()) { ret.add(ins(AVM2Instructions.Dup)); ret.add(ins(AVM2Instructions.GetScopeObject, scope)); @@ -3288,7 +3378,9 @@ public class AVM2SourceGenerator implements SourceGenerator { */ public List generate(SourceGeneratorLocalData localData, ReturnValueAVM2Item item) throws CompilationException { List ret = new ArrayList<>(); - ret.addAll(item.value.toSource(localData, this)); + GraphTargetItem value = item.value; + value = handleAndOrCoerce(value, localData.returnType); + ret.addAll(value.toSource(localData, this)); if (!localData.finallyCatches.isEmpty()) { ret.add(ins(AVM2Instructions.CoerceA)); ret.add(AssignableAVM2Item.generateSetLoc(localData.finallyRegister)); @@ -3423,4 +3515,31 @@ public class AVM2SourceGenerator implements SourceGenerator { List ret = new ArrayList<>(); return ret; } + + /** + * For some strange reasons, && and || operators must have coerced both sides + * when there is specific type expected. + * @param item Item to check. If it's && or ||, it will be handled, otherwise ignored + * @param type Coerced type + * @return Original value or coerced item + */ + public static GraphTargetItem handleAndOrCoerce(GraphTargetItem item, GraphTargetItem type) { + if (type == null) { + return item; + } + if ((item instanceof OrItem)||(item instanceof AndItem)) { + BinaryOpItem bo = (BinaryOpItem) item; + if ((bo.leftSide instanceof OrItem)||(bo.leftSide instanceof AndItem)) { + bo.leftSide = handleAndOrCoerce(bo.leftSide, type); + } else { + bo.leftSide = new CoerceAVM2Item(null, null, bo.leftSide, type); + } + if ((bo.rightSide instanceof OrItem)||(bo.rightSide instanceof AndItem)) { + bo.rightSide = handleAndOrCoerce(bo.rightSide, type); + } else { + bo.rightSide = new CoerceAVM2Item(null, null, bo.rightSide, type); + } + } + return item; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/CallAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/CallAVM2Item.java index 3b18cff9c..6b9bed180 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/CallAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/CallAVM2Item.java @@ -21,7 +21,10 @@ import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instructions; import com.jpexs.decompiler.flash.abc.avm2.model.AVM2Item; +import com.jpexs.decompiler.flash.abc.types.MethodInfo; import com.jpexs.decompiler.flash.abc.types.ValueKind; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; +import com.jpexs.decompiler.flash.abc.types.traits.TraitMethodGetterSetter; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.CompilationException; import com.jpexs.decompiler.graph.DottedChain; @@ -150,6 +153,33 @@ public class CallAVM2Item extends AVM2Item { if (callable instanceof PropertyAVM2Item) { PropertyAVM2Item prop = (PropertyAVM2Item) callable; + + Reference objType = new Reference<>(null); + Reference propType = new Reference<>(null); + Reference propIndexX = new Reference<>(0); + Reference outPropValue = new Reference<>(null); + Reference outPropValueAbc = new Reference<>(null); + Reference isType = new Reference<>(false); + Reference outPropTrait = new Reference<>(null); + + prop.resolve(false, localData, isType, objType, propType, propIndexX, outPropValue, outPropValueAbc, outPropTrait); + + if (outPropTrait.getVal() != null) { + Trait t = (Trait) outPropTrait.getVal(); + if (t instanceof TraitMethodGetterSetter) { + TraitMethodGetterSetter tm = (TraitMethodGetterSetter) t; + ABC abc = outPropValueAbc.getVal(); + MethodInfo mi = abc.method_info.get(tm.method_info); + for (int i = 0; i < mi.param_types.length; i++) { + if (i >= arguments.size()) { + break; + } + TypeItem type = new TypeItem(abc.constants.getMultiname(mi.param_types[i]).getNameWithNamespace(abc.constants, true /*??*/)); + arguments.set(i, AVM2SourceGenerator.handleAndOrCoerce(arguments.get(i), type)); + } + } + } + obj = prop.object; //For using this when appropriate: (Non ASC2 approach) /*if (obj == null) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ConstAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ConstAVM2Item.java index d82d01eb8..de8f75905 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ConstAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ConstAVM2Item.java @@ -142,9 +142,10 @@ public class ConstAVM2Item extends AVM2Item { List ret = new ArrayList<>(); if (value != null) { + GraphTargetItem value2 = AVM2SourceGenerator.handleAndOrCoerce(value, type); ret.add(ins(AVM2Instructions.FindProperty, agen.traitName(ns, var))); localData.isStatic = true; - ret.addAll(agen.toInsList(value.toSource(localData, agen))); + ret.addAll(agen.toInsList(value2.toSource(localData, agen))); ret.add(ins(AVM2Instructions.InitProperty, agen.traitName(ns, var))); } return ret; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java index e29bdba38..c7eedf683 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NameAVM2Item.java @@ -249,6 +249,10 @@ public class NameAVM2Item extends AssignableAVM2Item { */ public NameAVM2Item(GraphTargetItem type, int line, boolean attribute, String variableName, String namespaceSuffix, GraphTargetItem storeValue, boolean definition, List openedNamespaces, AbcIndexing abcIndex, boolean isConst) { super(storeValue); + + if (storeValue != null && type != null) { + storeValue = AVM2SourceGenerator.handleAndOrCoerce(storeValue, type); + } this.attribute = attribute; this.variableName = variableName; this.namespaceSuffix = namespaceSuffix; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NamespaceItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NamespaceItem.java index 041ef17ba..da9436bf3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NamespaceItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/NamespaceItem.java @@ -20,6 +20,7 @@ import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.types.Namespace; import com.jpexs.decompiler.flash.abc.types.ValueKind; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.graph.CompilationException; import com.jpexs.decompiler.graph.DottedChain; @@ -139,8 +140,9 @@ public class NamespaceItem { Reference value = new Reference<>(null); Reference outAbc = new Reference<>(null); Reference isType = new Reference<>(false); + Reference outPropTrait = new Reference<>(null); - prop.resolve(true, localData, isType, new Reference<>(null), new Reference<>(null), new Reference<>(0), value, outAbc); + prop.resolve(true, localData, isType, new Reference<>(null), new Reference<>(null), new Reference<>(0), value, outAbc, outPropTrait); boolean resolved = true; if (value.getVal() == null) { resolved = false; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/PropertyAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/PropertyAVM2Item.java index 9028989f2..2119e9655 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/PropertyAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/PropertyAVM2Item.java @@ -149,7 +149,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { * @param propertyValueABC Property value ABC * @throws CompilationException On compilation error */ - public void resolve(boolean mustExist, SourceGeneratorLocalData localData, Reference isType, Reference objectType, Reference propertyType, Reference propertyIndex, Reference propertyValue, Reference propertyValueABC) throws CompilationException { + public void resolve(boolean mustExist, SourceGeneratorLocalData localData, Reference isType, Reference objectType, Reference propertyType, Reference propertyIndex, Reference propertyValue, Reference propertyValueABC, Reference propertyTrait) throws CompilationException { Integer namespaceSuffixInt = null; if (!"".equals(namespaceSuffix)) { namespaceSuffixInt = Integer.parseInt(namespaceSuffix.substring(1)); @@ -177,6 +177,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { } } GraphTargetItem propType = null; + Trait propTrait = null; int propIndex = 0; ABC abc = abcIndex.getSelectedAbc(); AVM2ConstantPool constants = abc.constants; @@ -214,6 +215,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropType = new Reference<>(null); Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); + Reference outPropTrait = new Reference<>(null); List otherNs = new ArrayList<>(); for (NamespaceItem n : openedNamespaces) { if (n.isResolved()) { @@ -237,9 +239,10 @@ public class PropertyAVM2Item extends AssignableAVM2Item { propType = sp.returnType; propValue = sp.value; propValueAbc = sp.abc; + propTrait = sp.trait; } } - if (propType == null && AVM2SourceGenerator.searchPrototypeChain(namespaceSuffixInt, otherNs, localData.privateNs, localData.protectedNs, false, abcIndex, ftn.getWithoutLast(), ftn.getLast(), propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (propType == null && AVM2SourceGenerator.searchPrototypeChain(namespaceSuffixInt, otherNs, localData.privateNs, localData.protectedNs, false, abcIndex, ftn.getWithoutLast(), ftn.getLast(), propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { objType = new TypeItem(outNs.getVal().addWithSuffix(outName.getVal())); propType = outPropType.getVal(); propIndex = constants.getMultinameId(Multiname.createQName(false, @@ -248,6 +251,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { ); propValue = outPropValue.getVal(); propValueAbc = outPropValueAbc.getVal(); + propTrait = outPropTrait.getVal(); } } @@ -345,6 +349,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { TraitSlotConst tsc = (TraitSlotConst) t; propValue = new ValueKind(tsc.value_index, tsc.value_kind); propValueAbc = abc; + propTrait = t; } break loopobjType; } @@ -362,6 +367,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropType = new Reference<>(null); Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); + Reference outPropTrait = new Reference<>(null); if (p != null && (p.objType instanceof TypeItem)) { List otherns = new ArrayList<>(); for (NamespaceItem n : openedNamespaces) { @@ -369,7 +375,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { otherns.add(n.getCpoolIndex(abcIndex)); } } - if (AVM2SourceGenerator.searchPrototypeChain(namespaceSuffixInt, otherns, localData.privateNs, localData.protectedNs, false, abcIndex, nsname, (((TypeItem) p.objType).fullTypeName.getLast()), propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType)) { + if (AVM2SourceGenerator.searchPrototypeChain(namespaceSuffixInt, otherns, localData.privateNs, localData.protectedNs, false, abcIndex, nsname, (((TypeItem) p.objType).fullTypeName.getLast()), propertyName, outName, outNs, outPropNs, outPropNsKind, outPropNsIndex, outPropType, outPropValue, outPropValueAbc, isType, outPropTrait)) { objType = new TypeItem(outNs.getVal().addWithSuffix(outName.getVal())); propType = p.returnType; propIndex = constants.getMultinameId(Multiname.createQName(false, @@ -378,6 +384,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { ); propValue = p.value; propValueAbc = outPropValueAbc.getVal(); + propTrait = outPropTrait.getVal(); break loopobjType; } } @@ -410,6 +417,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item { propertyIndex.setVal(propIndex); propertyType.setVal(propType); objectType.setVal(objType); + propertyTrait.setVal(propTrait); } /** @@ -425,7 +433,8 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); Reference isType = new Reference<>(false); - resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc); + Reference outPropTrait = new Reference<>(null); + resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc, outPropTrait); return propIndex.getVal(); } @@ -438,8 +447,9 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); Reference isType = new Reference<>(false); + Reference outPropTrait = new Reference<>(null); try { - resolve(false, new SourceGeneratorLocalData(new HashMap<>(), 0, false, 0)/*???*/, isType, objType, propType, propIndex, outPropValue, outPropValueAbc); + resolve(false, new SourceGeneratorLocalData(new HashMap<>(), 0, false, 0)/*???*/, isType, objType, propType, propIndex, outPropValue, outPropValueAbc, outPropTrait); return propType.getVal(); } catch (CompilationException ex) { @@ -464,14 +474,18 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); Reference isType = new Reference<>(false); - - resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc); + Reference outPropTrait = new Reference<>(null); + + resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc, outPropTrait); int propertyId = propIndex.getVal(); Object obj = resolveObject(localData, generator, assignedValue == null); Reference ret_temp = new Reference<>(-1); boolean isSuper = (obj instanceof NameAVM2Item) && "super".equals(((NameAVM2Item) obj).getVariableName()); if (assignedValue != null) { + + assignedValue = AVM2SourceGenerator.handleAndOrCoerce(assignedValue, propType.getVal()); + GraphTargetItem targetType = propType.getVal(); String srcType = assignedValue.returnType().toString(); GraphTargetItem coerced = assignedValue; @@ -571,8 +585,9 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference propIndex = new Reference<>(0); Reference propValue = new Reference<>(null); Reference propValueAbc = new Reference<>(null); + Reference propTrait = new Reference<>(null); - resolve(false, localData, isType, objType, propType, propIndex, outPropValue, propValueAbc); + resolve(false, localData, isType, objType, propType, propIndex, propValue, propValueAbc, propTrait); obj = ins(mustExist ? AVM2Instructions.FindPropertyStrict : AVM2Instructions.FindProperty, propIndex.getVal()); //} } @@ -588,8 +603,9 @@ public class PropertyAVM2Item extends AssignableAVM2Item { Reference outPropValue = new Reference<>(null); Reference outPropValueAbc = new Reference<>(null); Reference isType = new Reference<>(false); + Reference outPropTrait = new Reference<>(null); - resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc); + resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc, outPropTrait); int propertyId = propIndex.getVal(); Object obj = resolveObject(localData, generator, false); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/SlotAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/SlotAVM2Item.java index d440dd25d..bab2cff48 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/SlotAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/SlotAVM2Item.java @@ -130,9 +130,10 @@ public class SlotAVM2Item extends AVM2Item { List ret = new ArrayList<>(); if (value != null) { + GraphTargetItem value2 = AVM2SourceGenerator.handleAndOrCoerce(value, type); ret.add(ins(AVM2Instructions.FindProperty, agen.traitName(ns, var))); localData.isStatic = true; - ret.addAll(agen.toInsList(value.toSource(localData, agen))); + ret.addAll(agen.toInsList(value2.toSource(localData, agen))); ret.add(ins(AVM2Instructions.SetProperty, agen.traitName(ns, var))); } return ret; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/UnresolvedAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/UnresolvedAVM2Item.java index f9f3db543..aefb89019 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/UnresolvedAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/UnresolvedAVM2Item.java @@ -29,6 +29,7 @@ import com.jpexs.decompiler.flash.abc.avm2.model.UndefinedAVM2Item; import com.jpexs.decompiler.flash.abc.types.MethodBody; import com.jpexs.decompiler.flash.abc.types.Namespace; import com.jpexs.decompiler.flash.abc.types.ValueKind; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.CompilationException; @@ -466,8 +467,9 @@ public class UnresolvedAVM2Item extends AssignableAVM2Item { Reference propertyValue = new Reference<>(null); Reference propertyValueABC = new Reference<>(null); Reference isType = new Reference<>(false); + Reference outPropTrait = new Reference<>(null); - resolvedx.resolve(true, localData, isType, objectType, propertyType, propertyIndex, propertyValue, propertyValueABC); + resolvedx.resolve(true, localData, isType, objectType, propertyType, propertyIndex, propertyValue, propertyValueABC, outPropTrait); if (objectType.getVal() != null && !isType.getVal()) { isProperty = true; 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 6864b3faf..5143efcbb 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 @@ -45,6 +45,19 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile false); } + @Test + public void testAndOrCoercion() { + decompileMethod("classic_air", "testAndOrCoercion", "var x:TestInterface = ti || (ti = new TestClass()) && (ti = new TestClass());\r\n" + + "var y:TestInterface = ti && (ti = new TestClass());\r\n" + + "var z:TestClass = tc || (tc = new TestClass());\r\n" + + "this.ti = ti && (ti = new TestClass());\r\n" + + "var a:* = ti && (ti = new TestClass());\r\n" + + "var b:int = 1 + (i || j);\r\n" + + "test(ti && (ti = new TestClass()));\r\n" + + "return ti && (ti = new TestClass());\r\n", + false); + } + @Test public void testArguments() { decompileMethod("classic_air", "testArguments", "return arguments[0];\r\n", diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java index 245d696f7..a0a727ba1 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java @@ -45,6 +45,19 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes false); } + @Test + public void testAndOrCoercion() { + decompileMethod("classic", "testAndOrCoercion", "var x:TestInterface = this.ti || (this.ti = new TestClass()) && (this.ti = new TestClass());\r\n" + + "var y:TestInterface = this.ti && (this.ti = new TestClass());\r\n" + + "var z:TestClass = this.tc || (this.tc = new TestClass());\r\n" + + "this.ti = this.ti && (this.ti = new TestClass());\r\n" + + "var a:* = this.ti && (this.ti = new TestClass());\r\n" + + "var b:int = 1 + (this.i || this.j);\r\n" + + "this.test(this.ti && (this.ti = new TestClass()));\r\n" + + "return this.ti && (this.ti = new TestClass());\r\n", + false); + } + @Test public void testArguments() { decompileMethod("classic", "testArguments", "return arguments[0];\r\n", diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf index 4e176eb7f01051fe7c45f5fe089fb665324f969e..bd64502d2986a33f25d5635cf7347bd23b6d1b03 100644 GIT binary patch literal 31355 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

yv%Ih~ zSi0J1dreAI)_>RsC^W#r8f$kr}( zhL0QP6x$iG)IoU}H*N~s8T$f;y;Gt|Nn{+`k5SDa#CN{e~}CMx;m%K z!FijrZc+_`Kh-G5|7WzUlBmv^KY0W?HNwf8KF?$tk!>~LnczH27LEK@6&;8>M1Gzz zxNz0$DpKeL1 zYxXFf`evAa8|0P@ohZz;@4{j$pBa;$brlxX@AF#=meJI*p~Wtmvqb`Iqze_KE=OEW zVU2YH%!5uj*w?nNEm;DIxIv!{rn+@$L-Tdu_>_*xOpD?mNL(xB7P~v!u>l(tKZu$p z?$hBWyhm=WE$<(FxVZi=H`EpPPs6!UqvENpFN`OFMWD1P_4UniLoHqn+P7!WDThSy zHen#O-@QQpD4Lm5Rr?+}T2R|2Pi|7%hO;wyax;gTGjk-B7&zt?I#xchPM(hc9y(4w z&Lf}bk!RM)OP9)#NQN#g_IqgsXk_LzC*_?K?rg6PGk7FeXL+8?%#6e1_u0{8k_mMN zI-d5n4WB&v!SBtGv~@~LL#sY_)dH+P1DI9^D4iJ#@&FB?AG*&ucCxc^7)~&c=i}1R zV-{hdM4)K`Y&d_vwE_#t~Of)$Dvd%=kqKQH8_&X)F81UDI#9=NUmU_ZXJeY zX71Uitms>Y*nsz{;w1<)VSvN&E=P~f_g&k2GIOpX-laif^2(JsCTz*foJx5Iha2

l20{~&a~&-?}YFxAelL(PHut6 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 O(H|m>Jp2!o`&&b%EiMfJ literal 31030 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 BjyV7T 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 072d8bae4d1b17dc7659d5b58db463a8e961924e..d28f3e2c7de1f455b6ad30acef9c5a8879d34c66 100644 GIT binary patch literal 41724 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­<%AdsWGG6OPnH&S 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 Dpk1D& diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as index a06a37b1d..186ef4ab7 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/Main.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/Main.as @@ -17,6 +17,7 @@ package public class Main extends Sprite { TestActivationArguments; + TestAndOrCoercion; TestArguments; TestBitwiseOperands; TestCallCall; diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestAndOrCoercion.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestAndOrCoercion.as new file mode 100644 index 000000000..175ab6f33 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestAndOrCoercion.as @@ -0,0 +1,41 @@ +package tests +{ + import tests_classes.mypackage1.TestClass; + import tests_classes.mypackage1.TestInterface; + + /* + * This is more like a direct editation test than decompilation. + * The compiler should add coercion around both sides of AND and OR operators, + * if there is specific type required + */ + public class TestAndOrCoercion + { + private var ti:TestInterface; + private var tc:TestClass; + private var i:int = 5; + private var j:int = 6; + private var tx:TestInterface = ti || tc; + + public function run():TestInterface + { + var x:TestInterface = ti || ((ti = new TestClass()) && (ti = new TestClass())); + var y:TestInterface = ti && (ti = new TestClass()); + var z:TestClass = tc || (tc = new TestClass()); + + this.ti = ti && (ti = new TestClass()); + + var a = ti && (ti = new TestClass()); + + var b:int = 1 + (i || j); //no coercion + + test(ti && (ti = new TestClass())); + + return ti && (ti = new TestClass()); + } + + public function test(p:TestInterface) + { + + } + } +}