mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-01 08:15:06 +00:00
Use FindProperty instead of FindPropStrict on setting property
This commit is contained in:
@@ -84,7 +84,7 @@ public class DeletePropertyAVM2Item extends AVM2Item {
|
||||
}
|
||||
if (p instanceof PropertyAVM2Item) {
|
||||
PropertyAVM2Item prop = (PropertyAVM2Item) p;
|
||||
return toSourceMerge(localData, generator, prop.resolveObject(localData, generator),
|
||||
return toSourceMerge(localData, generator, prop.resolveObject(localData, generator, true),
|
||||
ins(AVM2Instructions.DeleteProperty, prop.resolveProperty(localData))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class ConstructSomethingAVM2Item extends CallAVM2Item {
|
||||
|
||||
if (resname instanceof PropertyAVM2Item) {
|
||||
PropertyAVM2Item prop = (PropertyAVM2Item) resname;
|
||||
return toSourceMerge(localData, generator, prop.resolveObject(localData, generator), arguments,
|
||||
return toSourceMerge(localData, generator, prop.resolveObject(localData, generator, true), arguments,
|
||||
ins(AVM2Instructions.ConstructProp, prop.resolveProperty(localData), arguments.size())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -405,7 +405,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc);
|
||||
|
||||
int propertyId = propIndex.getVal();
|
||||
Object obj = resolveObject(localData, generator);
|
||||
Object obj = resolveObject(localData, generator, assignedValue == null);
|
||||
Reference<Integer> ret_temp = new Reference<>(-1);
|
||||
if (assignedValue != null) {
|
||||
GraphTargetItem targetType = propType.getVal();
|
||||
@@ -451,7 +451,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Object resolveObject(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException {
|
||||
public Object resolveObject(SourceGeneratorLocalData localData, SourceGenerator generator, boolean mustExist) throws CompilationException {
|
||||
Object obj = object;
|
||||
|
||||
if (obj == null) {
|
||||
@@ -495,7 +495,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
Reference<ABC> propValueAbc = new Reference<>(null);
|
||||
|
||||
resolve(false, localData, isType, objType, propType, propIndex, outPropValue, propValueAbc);
|
||||
obj = ins(AVM2Instructions.FindPropertyStrict, propIndex.getVal());
|
||||
obj = ins(mustExist ? AVM2Instructions.FindPropertyStrict : AVM2Instructions.FindProperty, propIndex.getVal());
|
||||
//}
|
||||
}
|
||||
return obj;
|
||||
@@ -514,7 +514,7 @@ public class PropertyAVM2Item extends AssignableAVM2Item {
|
||||
resolve(false, localData, isType, objType, propType, propIndex, outPropValue, outPropValueAbc);
|
||||
|
||||
int propertyId = propIndex.getVal();
|
||||
Object obj = resolveObject(localData, generator);
|
||||
Object obj = resolveObject(localData, generator, false);
|
||||
|
||||
Reference<Integer> ret_temp = new Reference<>(-1);
|
||||
Reference<Integer> obj_temp = new Reference<>(-1);
|
||||
|
||||
Reference in New Issue
Block a user