Fixed AS1/2 - newmethod proper brackets

This commit is contained in:
Jindra Petřík
2021-11-28 20:09:48 +01:00
parent 2390b1840c
commit 69ea391036
2 changed files with 9 additions and 2 deletions

View File

@@ -16,6 +16,7 @@
*/
package com.jpexs.decompiler.flash.action.model;
import com.jpexs.decompiler.flash.IdentifiersDeobfuscation;
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
import com.jpexs.decompiler.flash.action.swf5.ActionNewMethod;
import com.jpexs.decompiler.flash.ecma.Undefined;
@@ -72,16 +73,21 @@ public class NewMethodActionItem extends ActionItem {
}
scriptObject.toString(writer, localData);
if (!blankMethod) {
writer.append(".");
if (methodName instanceof DirectValueActionItem) {
if (((DirectValueActionItem) methodName).value == Undefined.INSTANCE) {
} else if (((DirectValueActionItem) methodName).value instanceof String) {
} else if ((((DirectValueActionItem) methodName).value instanceof String)
&& (IdentifiersDeobfuscation.isValidName(false, (String) ((DirectValueActionItem) methodName).value))) {
writer.append(".");
((DirectValueActionItem) methodName).toStringNoQuotes(writer, localData);
} else {
writer.append("[");
methodName.toString(writer, localData);
writer.append("]");
}
} else {
writer.append("[");
methodName.toString(writer, localData);
writer.append("]");
}
}
writer.spaceBeforeCallParenthesies(arguments.size());