Fixed AS1/2 - Infinity, NaN can be used as identifiers, are normal variables

This commit is contained in:
Jindra Petřík
2021-11-29 08:21:12 +01:00
parent ab8b2e24db
commit 34579690d4
6 changed files with 1002 additions and 1038 deletions

View File

@@ -96,9 +96,7 @@ public class IdentifiersDeobfuscation {
"throw",
"true", //can be in variable definition
"try",
"typeof", "undefined", "var", "void", "while", "with",
//global constants, can be in variable definition :
"NaN", "newline", "Infinity"
"typeof", "undefined", "var", "void", "while", "with"
};
// http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/syntax.html

View File

@@ -1853,14 +1853,6 @@ public class ActionScript2Parser {
ret = new DirectValueActionItem(null, null, 0, "\n", new ArrayList<>());
allowMemberOrCall = true;
break;
case NAN:
ret = new DirectValueActionItem(null, null, 0, Double.NaN, new ArrayList<>());
allowMemberOrCall = true;
break;
case INFINITY:
ret = new DirectValueActionItem(null, null, 0, Double.POSITIVE_INFINITY, new ArrayList<>());
allowMemberOrCall = true;
break;
case INTEGER:
case DOUBLE:
ret = new DirectValueActionItem(null, null, 0, s.value, new ArrayList<>());

View File

@@ -159,11 +159,9 @@ public enum SymbolType {
NUMBER_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STRING_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
IFFRAMELOADED,
INFINITY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
EVAL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
UNDEFINED(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NEWLINE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NAN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GETVERSION(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CALL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LOADMOVIENUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),