mirror of
https://github.com/hanzoai/DOMPurify.git
synced 2026-09-24 16:55:05 +00:00
8447 lines
345 KiB
JavaScript
8447 lines
345 KiB
JavaScript
(function(exports) {
|
|
var rulesLookup = {
|
|
0 : 'ArrayComma',
|
|
1 : 'ArrayOpen',
|
|
2 : 'ArrayClose',
|
|
3 : 'AccessorOpen',
|
|
4 : 'AccessorClose',
|
|
5 : 'Addition',
|
|
6 : 'AdditionAssignment',
|
|
7 : 'AssignmentDivide',
|
|
8 : 'AndAssignment',
|
|
9 : 'BlockStatementCurlyOpen',
|
|
10 : 'BlockStatementCurlyClose',
|
|
11 : 'BitwiseNot',
|
|
12 : 'BitwiseOr',
|
|
13 : 'BitwiseAnd',
|
|
14 : 'Break',
|
|
15 : 'Case',
|
|
16 : 'Default',
|
|
17 : 'Delete',
|
|
18 : 'Do',
|
|
19 : 'DoStatementCurlyOpen',
|
|
20 : 'DoStatementCurlyClose',
|
|
21 : 'DivideOperator',
|
|
22 : 'CatchStatement',
|
|
23 : 'CatchStatementParenOpen',
|
|
24 : 'CatchStatementParenClose',
|
|
25 : 'CatchStatementIdentifier',
|
|
26 : 'CatchStatementCurlyOpen',
|
|
27 : 'CatchStatementCurlyClose',
|
|
28 : 'Comma',
|
|
29 : 'Continue',
|
|
30 : 'EqualAssignment',
|
|
31 : 'Equal',
|
|
32 : 'Else',
|
|
33 : 'ElseCurlyOpen',
|
|
34 : 'ElseCurlyClose',
|
|
35 : 'EndStatement',
|
|
36 : 'False',
|
|
37 : 'FinallyStatement',
|
|
38 : 'FinallyStatementCurlyOpen',
|
|
39 : 'FinallyStatementCurlyClose',
|
|
40 : 'ForStatement',
|
|
41 : 'ForStatementParenOpen',
|
|
42 : 'ForStatementParenClose',
|
|
43 : 'ForStatementCurlyOpen',
|
|
44 : 'ForStatementCurlyClose',
|
|
45 : 'ForSemi',
|
|
46 : 'FunctionCallOpen',
|
|
47 : 'FunctionCallClose',
|
|
48 : 'FunctionArgumentIdentifier',
|
|
49 : 'FunctionArgumentComma',
|
|
50 : 'FunctionIdentifier',
|
|
51 : 'FunctionParenOpen',
|
|
52 : 'FunctionExpression',
|
|
53 : 'FunctionExpressionIdentifier',
|
|
54 : 'FunctionExpressionParenOpen',
|
|
55 : 'FunctionExpressionArgumentIdentifier',
|
|
56 : 'FunctionExpressionArgumentComma',
|
|
57 : 'FunctionParenClose',
|
|
58 : 'FunctionExpressionParenClose',
|
|
59 : 'FunctionExpressionCurlyOpen',
|
|
60 : 'FunctionStatement',
|
|
61 : 'FunctionStatementCurlyOpen',
|
|
62 : 'FunctionStatementCurlyClose',
|
|
63 : 'FunctionExpressionCurlyClose',
|
|
64 : 'GreaterThan',
|
|
65 : 'GreaterThanEqual',
|
|
66 : 'IdentifierDot',
|
|
67 : 'Identifier',
|
|
68 : 'IfStatement',
|
|
69 : 'IfStatementParenOpen',
|
|
70 : 'IfStatementParenClose',
|
|
71 : 'IfStatementCurlyOpen',
|
|
72 : 'IfStatementCurlyClose',
|
|
73 : 'In',
|
|
74 : 'Infinity',
|
|
75 : 'InstanceOf',
|
|
76 : 'LabelColon',
|
|
77 : 'LessThan',
|
|
78 : 'LessThanEqual',
|
|
79 : 'LeftShift',
|
|
80 : 'LeftShiftAssignment',
|
|
81 : 'LogicalOr',
|
|
82 : 'LogicalAnd',
|
|
83 : 'NaN',
|
|
84 : 'New',
|
|
85 : 'Number',
|
|
86 : 'Null',
|
|
87 : 'NotEqual',
|
|
88 : 'Not',
|
|
89 : 'Nothing',
|
|
90 : 'Minus',
|
|
91 : 'MinusAssignment',
|
|
92 : 'Modulus',
|
|
93 : 'ModulusAssignment',
|
|
94 : 'Multiply',
|
|
95 : 'MultiplyAssignment',
|
|
96 : 'ObjectLiteralCurlyOpen',
|
|
97 : 'ObjectLiteralCurlyClose',
|
|
98 : 'ObjectLiteralIdentifier',
|
|
99 : 'ObjectLiteralColon',
|
|
100 : 'ObjectLiteralComma',
|
|
101 : 'ObjectLiteralIdentifierNumber',
|
|
102 : 'ObjectLiteralIdentifierString',
|
|
103 : 'OrAssignment',
|
|
104 : 'ParenExpressionOpen',
|
|
105 : 'ParenExpressionComma',
|
|
106 : 'ParenExpressionClose',
|
|
107 : 'PostfixIncrement',
|
|
108 : 'PostfixDeincrement',
|
|
109 : 'PrefixDeincrement',
|
|
110 : 'PrefixIncrement',
|
|
111 : 'Return',
|
|
112 : 'RegExp',
|
|
113 : 'RightShift',
|
|
114 : 'RightShiftAssignment',
|
|
115 : 'String',
|
|
116 : 'StrictEqual',
|
|
117 : 'StrictNotEqual',
|
|
118 : 'SwitchStatement',
|
|
119 : 'SwitchStatementParenOpen',
|
|
120 : 'SwitchStatementParenClose',
|
|
121 : 'SwitchStatementCurlyOpen',
|
|
122 : 'SwitchStatementCurlyClose',
|
|
123 : 'SwitchColon',
|
|
124 : 'This',
|
|
125 : 'TernaryQuestionMark',
|
|
126 : 'TernaryColon',
|
|
127 : 'TryStatement',
|
|
128 : 'TryStatementCurlyOpen',
|
|
129 : 'TryStatementCurlyClose',
|
|
130 : 'True',
|
|
131 : 'Throw',
|
|
132 : 'TypeOf',
|
|
133 : 'UnaryPlus',
|
|
134 : 'UnaryMinus',
|
|
135 : 'Undefined',
|
|
136 : 'Var',
|
|
137 : 'VarIdentifier',
|
|
138 : 'VarComma',
|
|
139 : 'Void',
|
|
140 : 'WithStatement',
|
|
141 : 'WithStatementParenOpen',
|
|
142 : 'WithStatementParenClose',
|
|
143 : 'WithStatementCurlyOpen',
|
|
144 : 'WithStatementCurlyClose',
|
|
145 : 'WhileStatement',
|
|
146 : 'WhileStatementParenOpen',
|
|
147 : 'WhileStatementParenClose',
|
|
148 : 'WhileStatementCurlyOpen',
|
|
149 : 'WhileStatementCurlyClose',
|
|
150 : 'Xor',
|
|
151 : 'XorAssignment',
|
|
152 : 'ZeroRightShift',
|
|
153 : 'ZeroRightShiftAssignment'
|
|
}, rules = {
|
|
0 : {//ArrayComma
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
2 : 1, //ArrayClose
|
|
3 : 1, //AccessorOpen
|
|
4 : 1, //AccessorClose
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
36 : 1, //False
|
|
41 : 1, //ForStatementParenOpen
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
69 : 1, //IfStatementParenOpen
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
84 : 1, //New
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
99 : 1, //ObjectLiteralColon
|
|
104 : 1, //ParenExpressionOpen
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
119 : 1, //SwitchStatementParenOpen
|
|
124 : 1, //This
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
130 : 1, //True
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
146 : 1 //WhileStatementParenOpen
|
|
|
|
},
|
|
1 : {//ArrayOpen
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
2 : {//ArrayClose
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
3 : {//AccessorOpen
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
4 : {//AccessorClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
5 : {//Addition
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
6 : {//AdditionAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
7 : {//AssignmentDivide
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
8 : {//AndAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
9 : {//BlockStatementCurlyOpen
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
10 : {//BlockStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
11 : {//BitwiseNot
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
12 : {//BitwiseOr
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
13 : {//BitwiseAnd
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
14 : {//Break
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
15 : {//Case
|
|
35 : 1, //EndStatement
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
123 : 1 //SwitchColon
|
|
|
|
},
|
|
16 : {//Default
|
|
35 : 1, //EndStatement
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
123 : 1 //SwitchColon
|
|
|
|
},
|
|
17 : {//Delete
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
18 : {//Do
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
19 : {//DoStatementCurlyOpen
|
|
18 : 1 //Do
|
|
|
|
},
|
|
20 : {//DoStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
21 : {//DivideOperator
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
22 : {//CatchStatement
|
|
129 : 1 //TryStatementCurlyClose
|
|
|
|
},
|
|
23 : {//CatchStatementParenOpen
|
|
22 : 1 //CatchStatement
|
|
|
|
},
|
|
24 : {//CatchStatementParenClose
|
|
25 : 1 //CatchStatementIdentifier
|
|
|
|
},
|
|
25 : {//CatchStatementIdentifier
|
|
23 : 1 //CatchStatementParenOpen
|
|
|
|
},
|
|
26 : {//CatchStatementCurlyOpen
|
|
24 : 1 //CatchStatementParenClose
|
|
|
|
},
|
|
27 : {//CatchStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
28 : {//Comma
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
29 : {//Continue
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
30 : {//EqualAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
31 : {//Equal
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
32 : {//Else
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
33 : {//ElseCurlyOpen
|
|
32 : 1 //Else
|
|
|
|
},
|
|
34 : {//ElseCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
35 : {//EndStatement
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
36 : {//False
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
37 : {//FinallyStatement
|
|
27 : 1, //CatchStatementCurlyClose
|
|
129 : 1 //TryStatementCurlyClose
|
|
|
|
},
|
|
38 : {//FinallyStatementCurlyOpen
|
|
37 : 1 //FinallyStatement
|
|
|
|
},
|
|
39 : {//FinallyStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
40 : {//ForStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
41 : {//ForStatementParenOpen
|
|
40 : 1 //ForStatement
|
|
|
|
},
|
|
42 : {//ForStatementParenClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
14 : 1, //Break
|
|
29 : 1, //Continue
|
|
36 : 1, //False
|
|
45 : 1, //ForSemi
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
43 : {//ForStatementCurlyOpen
|
|
42 : 1 //ForStatementParenClose
|
|
|
|
},
|
|
44 : {//ForStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
45 : {//ForSemi
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
41 : 1, //ForStatementParenOpen
|
|
45 : 1, //ForSemi
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
46 : {//FunctionCallOpen
|
|
4 : 1, //AccessorClose
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
106 : 1, //ParenExpressionClose
|
|
124 : 1 //This
|
|
|
|
},
|
|
47 : {//FunctionCallClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
46 : 1, //FunctionCallOpen
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
48 : {//FunctionArgumentIdentifier
|
|
49 : 1, //FunctionArgumentComma
|
|
51 : 1 //FunctionParenOpen
|
|
|
|
},
|
|
49 : {//FunctionArgumentComma
|
|
48 : 1 //FunctionArgumentIdentifier
|
|
|
|
},
|
|
50 : {//FunctionIdentifier
|
|
60 : 1 //FunctionStatement
|
|
|
|
},
|
|
51 : {//FunctionParenOpen
|
|
50 : 1 //FunctionIdentifier
|
|
|
|
},
|
|
52 : {//FunctionExpression
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
21 : 1, //DivideOperator
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
41 : 1, //ForStatementParenOpen
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
146 : 1, //WhileStatementParenOpen
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
53 : {//FunctionExpressionIdentifier
|
|
52 : 1 //FunctionExpression
|
|
|
|
},
|
|
54 : {//FunctionExpressionParenOpen
|
|
52 : 1, //FunctionExpression
|
|
53 : 1 //FunctionExpressionIdentifier
|
|
|
|
},
|
|
55 : {//FunctionExpressionArgumentIdentifier
|
|
54 : 1, //FunctionExpressionParenOpen
|
|
56 : 1 //FunctionExpressionArgumentComma
|
|
|
|
},
|
|
56 : {//FunctionExpressionArgumentComma
|
|
55 : 1 //FunctionExpressionArgumentIdentifier
|
|
|
|
},
|
|
57 : {//FunctionParenClose
|
|
48 : 1, //FunctionArgumentIdentifier
|
|
51 : 1 //FunctionParenOpen
|
|
|
|
},
|
|
58 : {//FunctionExpressionParenClose
|
|
54 : 1, //FunctionExpressionParenOpen
|
|
55 : 1 //FunctionExpressionArgumentIdentifier
|
|
|
|
},
|
|
59 : {//FunctionExpressionCurlyOpen
|
|
58 : 1 //FunctionExpressionParenClose
|
|
|
|
},
|
|
60 : {//FunctionStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
61 : {//FunctionStatementCurlyOpen
|
|
57 : 1 //FunctionParenClose
|
|
|
|
},
|
|
62 : {//FunctionStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
63 : {//FunctionExpressionCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
64 : {//GreaterThan
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
65 : {//GreaterThanEqual
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
66 : {//IdentifierDot
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
67 : {//Identifier
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
66 : 1, //IdentifierDot
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
68 : {//IfStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
69 : {//IfStatementParenOpen
|
|
68 : 1 //IfStatement
|
|
|
|
},
|
|
70 : {//IfStatementParenClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
71 : {//IfStatementCurlyOpen
|
|
70 : 1 //IfStatementParenClose
|
|
|
|
},
|
|
72 : {//IfStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
73 : {//In
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
74 : {//Infinity
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
75 : {//InstanceOf
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
76 : {//LabelColon
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
77 : {//LessThan
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
78 : {//LessThanEqual
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
79 : {//LeftShift
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
80 : {//LeftShiftAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
81 : {//LogicalOr
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
82 : {//LogicalAnd
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
83 : {//NaN
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
84 : {//New
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
85 : {//Number
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
86 : {//Null
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
87 : {//NotEqual
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
88 : {//Not
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
89 : {//Nothing
|
|
|
|
},
|
|
90 : {//Minus
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
91 : {//MinusAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
92 : {//Modulus
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
93 : {//ModulusAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
94 : {//Multiply
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
95 : {//MultiplyAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
96 : {//ObjectLiteralCurlyOpen
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
21 : 1, //DivideOperator
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
41 : 1, //ForStatementParenOpen
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
146 : 1, //WhileStatementParenOpen
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
97 : {//ObjectLiteralCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
96 : 1, //ObjectLiteralCurlyOpen
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
98 : {//ObjectLiteralIdentifier
|
|
96 : 1, //ObjectLiteralCurlyOpen
|
|
100 : 1 //ObjectLiteralComma
|
|
|
|
},
|
|
99 : {//ObjectLiteralColon
|
|
98 : 1, //ObjectLiteralIdentifier
|
|
101 : 1, //ObjectLiteralIdentifierNumber
|
|
102 : 1 //ObjectLiteralIdentifierString
|
|
|
|
},
|
|
100 : {//ObjectLiteralComma
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
101 : {//ObjectLiteralIdentifierNumber
|
|
96 : 1, //ObjectLiteralCurlyOpen
|
|
100 : 1 //ObjectLiteralComma
|
|
|
|
},
|
|
102 : {//ObjectLiteralIdentifierString
|
|
96 : 1, //ObjectLiteralCurlyOpen
|
|
100 : 1 //ObjectLiteralComma
|
|
|
|
},
|
|
103 : {//OrAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
104 : {//ParenExpressionOpen
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
105 : {//ParenExpressionComma
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
106 : {//ParenExpressionClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
107 : {//PostfixIncrement
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
108 : {//PostfixDeincrement
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
109 : {//PrefixDeincrement
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
110 : {//PrefixIncrement
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
111 : {//Return
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
112 : {//RegExp
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
113 : {//RightShift
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
114 : {//RightShiftAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
115 : {//String
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
116 : {//StrictEqual
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
117 : {//StrictNotEqual
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
118 : {//SwitchStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
119 : {//SwitchStatementParenOpen
|
|
118 : 1 //SwitchStatement
|
|
|
|
},
|
|
120 : {//SwitchStatementParenClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
121 : {//SwitchStatementCurlyOpen
|
|
120 : 1 //SwitchStatementParenClose
|
|
|
|
},
|
|
122 : {//SwitchStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
123 : {//SwitchColon
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
16 : 1, //Default
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
124 : {//This
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
125 : {//TernaryQuestionMark
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
126 : {//TernaryColon
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
127 : {//TryStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
128 : {//TryStatementCurlyOpen
|
|
127 : 1 //TryStatement
|
|
|
|
},
|
|
129 : {//TryStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
130 : {//True
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
131 : {//Throw
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
84 : 1, //New
|
|
89 : 1, //Nothing
|
|
99 : 1, //ObjectLiteralColon
|
|
104 : 1, //ParenExpressionOpen
|
|
111 : 1, //Return
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
132 : {//TypeOf
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
133 : {//UnaryPlus
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
134 : {//UnaryMinus
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
135 : {//Undefined
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
11 : 1, //BitwiseNot
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
88 : 1, //Not
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
109 : 1, //PrefixDeincrement
|
|
110 : 1, //PrefixIncrement
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
133 : 1, //UnaryPlus
|
|
134 : 1, //UnaryMinus
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
136 : {//Var
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
84 : 1, //New
|
|
89 : 1, //Nothing
|
|
99 : 1, //ObjectLiteralColon
|
|
104 : 1, //ParenExpressionOpen
|
|
111 : 1, //Return
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
137 : {//VarIdentifier
|
|
136 : 1, //Var
|
|
138 : 1 //VarComma
|
|
|
|
},
|
|
138 : {//VarComma
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
139 : {//Void
|
|
0 : 1, //ArrayComma
|
|
1 : 1, //ArrayOpen
|
|
3 : 1, //AccessorOpen
|
|
5 : 1, //Addition
|
|
6 : 1, //AdditionAssignment
|
|
7 : 1, //AssignmentDivide
|
|
8 : 1, //AndAssignment
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
12 : 1, //BitwiseOr
|
|
13 : 1, //BitwiseAnd
|
|
14 : 1, //Break
|
|
15 : 1, //Case
|
|
17 : 1, //Delete
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
21 : 1, //DivideOperator
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
28 : 1, //Comma
|
|
29 : 1, //Continue
|
|
30 : 1, //EqualAssignment
|
|
31 : 1, //Equal
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
41 : 1, //ForStatementParenOpen
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
45 : 1, //ForSemi
|
|
46 : 1, //FunctionCallOpen
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
64 : 1, //GreaterThan
|
|
65 : 1, //GreaterThanEqual
|
|
69 : 1, //IfStatementParenOpen
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
73 : 1, //In
|
|
75 : 1, //InstanceOf
|
|
76 : 1, //LabelColon
|
|
77 : 1, //LessThan
|
|
78 : 1, //LessThanEqual
|
|
79 : 1, //LeftShift
|
|
80 : 1, //LeftShiftAssignment
|
|
81 : 1, //LogicalOr
|
|
82 : 1, //LogicalAnd
|
|
84 : 1, //New
|
|
87 : 1, //NotEqual
|
|
89 : 1, //Nothing
|
|
90 : 1, //Minus
|
|
91 : 1, //MinusAssignment
|
|
92 : 1, //Modulus
|
|
93 : 1, //ModulusAssignment
|
|
94 : 1, //Multiply
|
|
95 : 1, //MultiplyAssignment
|
|
99 : 1, //ObjectLiteralColon
|
|
103 : 1, //OrAssignment
|
|
104 : 1, //ParenExpressionOpen
|
|
111 : 1, //Return
|
|
113 : 1, //RightShift
|
|
114 : 1, //RightShiftAssignment
|
|
116 : 1, //StrictEqual
|
|
117 : 1, //StrictNotEqual
|
|
119 : 1, //SwitchStatementParenOpen
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
125 : 1, //TernaryQuestionMark
|
|
126 : 1, //TernaryColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
131 : 1, //Throw
|
|
132 : 1, //TypeOf
|
|
138 : 1, //VarComma
|
|
139 : 1, //Void
|
|
141 : 1, //WithStatementParenOpen
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
146 : 1, //WhileStatementParenOpen
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1, //WhileStatementCurlyClose
|
|
150 : 1, //Xor
|
|
151 : 1, //XorAssignment
|
|
152 : 1, //ZeroRightShift
|
|
153 : 1 //ZeroRightShiftAssignment
|
|
|
|
},
|
|
140 : {//WithStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
141 : {//WithStatementParenOpen
|
|
140 : 1 //WithStatement
|
|
|
|
},
|
|
142 : {//WithStatementParenClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
143 : {//WithStatementCurlyOpen
|
|
142 : 1 //WithStatementParenClose
|
|
|
|
},
|
|
144 : {//WithStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
145 : {//WhileStatement
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
76 : 1, //LabelColon
|
|
89 : 1, //Nothing
|
|
111 : 1, //Return
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
146 : {//WhileStatementParenOpen
|
|
145 : 1 //WhileStatement
|
|
|
|
},
|
|
147 : {//WhileStatementParenClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
148 : {//WhileStatementCurlyOpen
|
|
147 : 1 //WhileStatementParenClose
|
|
|
|
},
|
|
149 : {//WhileStatementCurlyClose
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
9 : 1, //BlockStatementCurlyOpen
|
|
10 : 1, //BlockStatementCurlyClose
|
|
14 : 1, //Break
|
|
18 : 1, //Do
|
|
19 : 1, //DoStatementCurlyOpen
|
|
20 : 1, //DoStatementCurlyClose
|
|
26 : 1, //CatchStatementCurlyOpen
|
|
27 : 1, //CatchStatementCurlyClose
|
|
29 : 1, //Continue
|
|
32 : 1, //Else
|
|
33 : 1, //ElseCurlyOpen
|
|
34 : 1, //ElseCurlyClose
|
|
35 : 1, //EndStatement
|
|
36 : 1, //False
|
|
38 : 1, //FinallyStatementCurlyOpen
|
|
39 : 1, //FinallyStatementCurlyClose
|
|
42 : 1, //ForStatementParenClose
|
|
43 : 1, //ForStatementCurlyOpen
|
|
44 : 1, //ForStatementCurlyClose
|
|
47 : 1, //FunctionCallClose
|
|
59 : 1, //FunctionExpressionCurlyOpen
|
|
61 : 1, //FunctionStatementCurlyOpen
|
|
62 : 1, //FunctionStatementCurlyClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
70 : 1, //IfStatementParenClose
|
|
71 : 1, //IfStatementCurlyOpen
|
|
72 : 1, //IfStatementCurlyClose
|
|
74 : 1, //Infinity
|
|
76 : 1, //LabelColon
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
89 : 1, //Nothing
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
111 : 1, //Return
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
120 : 1, //SwitchStatementParenClose
|
|
121 : 1, //SwitchStatementCurlyOpen
|
|
122 : 1, //SwitchStatementCurlyClose
|
|
123 : 1, //SwitchColon
|
|
124 : 1, //This
|
|
128 : 1, //TryStatementCurlyOpen
|
|
129 : 1, //TryStatementCurlyClose
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1, //VarIdentifier
|
|
142 : 1, //WithStatementParenClose
|
|
143 : 1, //WithStatementCurlyOpen
|
|
144 : 1, //WithStatementCurlyClose
|
|
147 : 1, //WhileStatementParenClose
|
|
148 : 1, //WhileStatementCurlyOpen
|
|
149 : 1 //WhileStatementCurlyClose
|
|
|
|
},
|
|
150 : {//Xor
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
151 : {//XorAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
152 : {//ZeroRightShift
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
107 : 1, //PostfixIncrement
|
|
108 : 1, //PostfixDeincrement
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
},
|
|
153 : {//ZeroRightShiftAssignment
|
|
2 : 1, //ArrayClose
|
|
4 : 1, //AccessorClose
|
|
36 : 1, //False
|
|
47 : 1, //FunctionCallClose
|
|
63 : 1, //FunctionExpressionCurlyClose
|
|
67 : 1, //Identifier
|
|
74 : 1, //Infinity
|
|
83 : 1, //NaN
|
|
85 : 1, //Number
|
|
86 : 1, //Null
|
|
97 : 1, //ObjectLiteralCurlyClose
|
|
106 : 1, //ParenExpressionClose
|
|
112 : 1, //RegExp
|
|
115 : 1, //String
|
|
124 : 1, //This
|
|
130 : 1, //True
|
|
135 : 1, //Undefined
|
|
137 : 1 //VarIdentifier
|
|
|
|
}
|
|
};
|
|
|
|
exports.version = "0.4.0";
|
|
exports.parse = function() {
|
|
var js = MentalJS();
|
|
};
|
|
MentalJS = function() {
|
|
function Mental() {
|
|
var that = this,scoping = '$', replaceScoping = new RegExp('[' + scoping + ']'),
|
|
attributeWhitelist = /^(?:style|accesskey|align|alink|alt|bgcolor|border|cellpadding|cellspacing|class|color|cols|colspan|coords|dir|face|height|hspace|id|ismap|lang|marginheight|marginwidth|multiple|name|nohref|noresize|noshade|nowrap|ref|rel|rev|rows|rowspan|scrolling|size|shape|span|summary|tabindex|target|title|type|usemap|valign|value|vlink|vspace|width)$/i,
|
|
attributeWhitelistList = 'accesskey|align|alink|alt|bgcolor|border|cellpadding|cellspacing|class|color|cols|colspan|coords|dir|face|height|hspace|id|ismap|lang|marginheight|marginwidth|multiple|name|nohref|noresize|noshade|nowrap|ref|rel|rev|rows|rowspan|scrolling|size|shape|span|summary|tabindex|target|title|type|usemap|valign|value|vlink|vspace|width'.split('|'),
|
|
urlBasedAttributes = /^(?:href|src|action)$/i, urlBasedAttributesList = ['href', 'src', 'action'], allowedEvents = /^(?:onabort|onactivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbegin|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragleave|ondragenter|ondragover|ondragdrop|ondrop|onend|onerror|onerrorupdate|onexit|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmediacomplete|onmediaerror|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onoutofsync|onpaste|onpause|onprogress|onpropertychange|onreadystatechange|onrepeat|onreset|onresize|onresizeend|onresizestart|onresume|onreverse|onrowenter|onrowexit|onrowdelete|onrowinserted|onscroll|onseek|onselect|onselectionchange|onselectstart|onstart|onstop|onsynchrestored|onsubmit|ontimeerror|ontrackchange|onunload|onurlflip|seeksegmenttime|oncanplay|oncanplaythrough|ondragstart|ondurationchange|onemptied|onended|onloadeddata|onloadedmetadata|onloadstart|onmessage|onoffline|ononline|onplay|onplaying|onratechange|onsearch|onseeked|onseeking|onstalled|onstorage|onsuspend|ontimeupdate|onvolumechange|onwaiting|onwebkitanimationend|onwebkitanimationiteration|onwebkitanimationstart|onwebkittransitionend)$/i,
|
|
allowedEventsList = 'onabort|onactivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbegin|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragend|ondragleave|ondragenter|ondragover|ondragdrop|ondrop|onend|onerror|onerrorupdate|onexit|onfilterchange|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmediacomplete|onmediaerror|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onoutofsync|onpaste|onpause|onprogress|onpropertychange|onreadystatechange|onrepeat|onreset|onresize|onresizeend|onresizestart|onresume|onreverse|onrowenter|onrowexit|onrowdelete|onrowinserted|onscroll|onseek|onselect|onselectionchange|onselectstart|onstart|onstop|onsynchrestored|onsubmit|ontimeerror|ontrackchange|onunload|onurlflip|seeksegmenttime|oncanplay|oncanplaythrough|ondragstart|ondurationchange|onemptied|onended|onloadeddata|onloadedmetadata|onloadstart|onmessage|onoffline|ononline|onplay|onplaying|onratechange|onsearch|onseeked|onseeking|onstalled|onstorage|onsuspend|ontimeupdate|onvolumechange|onwaiting|onwebkitanimationend|onwebkitanimationiteration|onwebkitanimationstart|onwebkittransitionend'.split('|'), allowedTagsRegEx = /^(?:a|b|h[1-6]|script|head|title|style|link|body|form|font|select|optgroup|option|input|textarea|button|label|fieldset|legend|ul|ol|dl|directory|menu|nav|li|div|p|heading|quote|pre|br|hr|img|image|map|area|table|code|caption|th|section|tr|td|tbody|iframe)$/i,
|
|
allowedCSSProperties = ["azimuth", "background", "backgroundAttachment", "backgroundColor", "backgroundImage", "backgroundPosition", "backgroundRepeat", "border", "borderCollapse", "borderColor", "borderSpacing", "borderStyle", "borderTop", "borderRight", "borderBottom", "borderLeft", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle", "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth", "borderWidth", "bottom", "captionSide", "clear", "clip", "color", "content", "counterIncrement", "counterReset", "cue", "cueAfter", "cueBefore", "cursor", "direction", "display", "elevation", "emptyCells", "float", "font", "fontFamily", "fontSize", "fontSizeAdjust", "fontStretch", "fontStyle", "fontVariant", "fontWeight", "height", "left", "letterSpacing", "lineHeight", "listStyle", "listStyleImage", "listStylePosition", "listStyleType", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "markerOffset", "marks", "maxHeight", "maxWidth", "minHeight", "minWidth", "orphans", "outline", "outlineColor", "outlineStyle", "outlineWidth", "overflow", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "page", "pageBreakAfter", "pageBreakBefore", "pageBreakInside", "pause", "pauseAfter", "pauseBefore", "pitch", "pitchRange", "playDuring", "position", "quotes", "richness", "right", "size", "speak", "speakHeader", "speakNumeral", "speakPunctuation", "speechRate", "stress", "tableLayout", "textAlign", "textDecoration", "textIndent", "textShadow", "textTransform", "top", "unicodeBidi", "verticalAlign", "visibility", "voiceFamily", "volume", "whiteSpace", "widows", "width", "wordSpacing", "zIndex"],
|
|
setTimeoutIDS = {}, setIntervalIDS = {};
|
|
this.init = init;
|
|
function init(config) {
|
|
M = {
|
|
O : function(obj) {
|
|
var keys = Object.keys(obj), key;
|
|
for (key in obj) {
|
|
if (!/.+[$]$/.test(key)) {
|
|
continue;
|
|
}
|
|
if (/^(?:toString|valueOf|constructor|hasOwnProperty)[$]$/.test(key)) {
|
|
Object.defineProperty(obj, key.replace(new RegExp(replaceScoping.source + '$', 'i'), ''), {
|
|
configurable : true,
|
|
enumerable : false,
|
|
writable : true
|
|
});
|
|
Object.defineProperty(obj, key, {
|
|
value : obj[key],
|
|
enumerable : false,
|
|
writable : true,
|
|
configurable : true
|
|
});
|
|
} else {
|
|
if (key === 'length$') {
|
|
Object.defineProperty(obj, key.replace(new RegExp(replaceScoping.source + '$', 'i'), ''), {
|
|
configurable : true,
|
|
enumerable : true,
|
|
writable : true,
|
|
value : obj[key]
|
|
});
|
|
Object.defineProperty(obj, key, {
|
|
set : function(len) {
|
|
this.length = len;
|
|
},
|
|
get : function() {
|
|
return this.length;
|
|
},
|
|
enumerable : false,
|
|
configurable : true
|
|
});
|
|
continue;
|
|
}
|
|
Object.defineProperty(obj, key.replace(new RegExp(replaceScoping.source + '$', 'i'), ''), {
|
|
configurable : true,
|
|
enumerable : true,
|
|
writable : true
|
|
});
|
|
Object.defineProperty(obj, key, {
|
|
value : obj[key],
|
|
enumerable : false,
|
|
writable : true,
|
|
configurable : true
|
|
});
|
|
}
|
|
}
|
|
return obj;
|
|
},
|
|
P : function() {
|
|
var exp = arguments[arguments.length - 1];
|
|
if ( typeof exp === 'undefined') {
|
|
return null;
|
|
}
|
|
if ((/[^\d]/.test(exp) || exp === '')) {
|
|
return exp + scoping;
|
|
} else {
|
|
return +exp;
|
|
}
|
|
},
|
|
A : function(args) {
|
|
args = [].slice.call(args, 0);
|
|
args.callee$ = arguments.callee.caller;
|
|
return args;
|
|
}
|
|
};
|
|
function defineStyle(obj, property) {
|
|
Object.defineProperty(obj, property + '$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this[property];
|
|
},
|
|
set : function(value) {
|
|
this[property] = value;
|
|
}
|
|
});
|
|
}
|
|
|
|
function createSandboxedNode(node) {
|
|
for (var i = 0; i < allowedEventsList.length; i++) {
|
|
Object.defineProperty(node, allowedEventsList[i] + scoping, {
|
|
configurable : true,
|
|
get : function(attr) {
|
|
return function() {
|
|
return this[attr];
|
|
}
|
|
}(allowedEventsList[i]),
|
|
set : function(attr) {
|
|
return function(val) {
|
|
if ( typeof val === 'function') {
|
|
return this[attr] = val;
|
|
}
|
|
}
|
|
}(allowedEventsList[i])
|
|
});
|
|
}
|
|
|
|
for (var i = 0; i < attributeWhitelistList.length; i++) {
|
|
Object.defineProperty(node, attributeWhitelistList[i] + scoping, {
|
|
configurable : true,
|
|
get : function(attr) {
|
|
return function() {
|
|
return this[attr];
|
|
}
|
|
}(attributeWhitelistList[i]),
|
|
set : function(attr) {
|
|
return function(val) {
|
|
return this[attr] = val;
|
|
}
|
|
}(attributeWhitelistList[i])
|
|
});
|
|
}
|
|
|
|
for (var i = 0; i < urlBasedAttributesList.length; i++) {
|
|
Object.defineProperty(node, urlBasedAttributesList[i] + scoping, {
|
|
configurable : true,
|
|
get : function(attr) {
|
|
return function() {
|
|
return this[attr];
|
|
}
|
|
}(urlBasedAttributesList[i]),
|
|
set : function(attr) {
|
|
var anchor = document.createElement('a');
|
|
return function(val) {
|
|
anchor.href = val + '';
|
|
if ((anchor.protocol === 'http:' || anchor.protocol === 'https:') && anchor.host.replace(/:\d+$/, '') === location.host.replace(/:\d+$/, '')) {
|
|
return this[attr] = val;
|
|
}
|
|
}
|
|
}(urlBasedAttributesList[i])
|
|
});
|
|
}
|
|
|
|
Object.defineProperties(node, {
|
|
'innerText$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerText;
|
|
},
|
|
set : function(innerText) {
|
|
this.innerText = innerText;
|
|
}
|
|
},
|
|
'innerHTML$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerHTML;
|
|
},
|
|
set : function(innerHTML) {
|
|
var clean = config.parseInnerHTML(innerHTML);
|
|
this.innerHTML = clean;
|
|
return this.innerHTML;
|
|
}
|
|
},
|
|
'textContent$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.textContent;
|
|
},
|
|
set : function(textContent) {
|
|
this.textContent = textContent;
|
|
}
|
|
},
|
|
'style$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
var style = this.style, i;
|
|
for ( i = 0; i < allowedCSSProperties.length; i++) {
|
|
defineStyle(style, allowedCSSProperties[i]);
|
|
}
|
|
//todo CSS parsing
|
|
Object.defineProperty(this.style, 'cssText$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.cssText;
|
|
},
|
|
set : function(val) {
|
|
this.cssText = val;
|
|
}
|
|
});
|
|
|
|
return style;
|
|
}
|
|
},
|
|
'appendChild$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(node) {
|
|
var js, script, code;
|
|
if (this.tagName && this.tagName.toUpperCase() == 'SCRIPT') {
|
|
while (this.firstChild) {
|
|
this.removeChild(this.firstChild);
|
|
}
|
|
js = MentalJS();
|
|
code = document.createTextNode(js.parse({
|
|
options : {
|
|
eval : false
|
|
},
|
|
code : node.textContent
|
|
}));
|
|
script = document.createElement('script');
|
|
script.appendChild(code);
|
|
return this.appendChild(script);
|
|
}
|
|
return this.appendChild(node);
|
|
}
|
|
},
|
|
'value$' : {
|
|
configurable : true,
|
|
set : function(val) {
|
|
this.value = val;
|
|
},
|
|
get : function() {
|
|
return this.value;
|
|
}
|
|
},
|
|
'ownerDocument$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.ownerDocument;
|
|
}
|
|
},
|
|
'nodeName$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.nodeName
|
|
},
|
|
'tagName$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.tagName;
|
|
}
|
|
},
|
|
'nodeType$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.nodeType;
|
|
}
|
|
},
|
|
'childNodes$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.childNodes;
|
|
}
|
|
},
|
|
'firstChild$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.firstChild;
|
|
}
|
|
},
|
|
'lastChild$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.lastChild;
|
|
}
|
|
},
|
|
'nextSibling$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.nextSibling;
|
|
}
|
|
},
|
|
'parentNode$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.parentNode;
|
|
}
|
|
},
|
|
'insertBefore$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(newElement, referenceElement) {
|
|
var js, script, code;
|
|
if (this.tagName && this.tagName.toUpperCase() == 'SCRIPT') {
|
|
while (this.firstChild) {
|
|
this.removeChild(this.firstChild);
|
|
}
|
|
js = MentalJS();
|
|
code = document.createTextNode(js.parse({
|
|
options : {
|
|
eval : false
|
|
},
|
|
code : newElement.textContent
|
|
}));
|
|
return this.insertBefore(code, referenceElement);
|
|
}
|
|
return this.insertBefore.apply(this, arguments);
|
|
}
|
|
},
|
|
'cloneNode$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return this.cloneNode.apply(this, arguments);
|
|
}
|
|
},
|
|
'removeChild$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return this.removeChild.apply(this, arguments);
|
|
}
|
|
},
|
|
'removeAttribute$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(name) {
|
|
this.removeAttribute(name);
|
|
}
|
|
},
|
|
'getAttribute$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(name) {
|
|
if (attributeWhitelist.test(name)) {
|
|
return this.getAttribute(name);
|
|
}
|
|
}
|
|
},
|
|
'setAttribute$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(name, value) {
|
|
var anchor;
|
|
if (attributeWhitelist.test(name)) {
|
|
if (urlBasedAttributes.test(name)) {
|
|
anchor = document.createElement('a');
|
|
anchor.href = value;
|
|
if ((anchor.protocol === 'http:' || anchor.protocol === 'https:') && anchor.host.replace(/:\d+$/, '') === location.host.replace(/:\d+$/, '')) {
|
|
value = anchor.href + '';
|
|
} else {
|
|
value = '#';
|
|
}
|
|
anchor = null;
|
|
}
|
|
return this.setAttribute(name, value + '');
|
|
}
|
|
}
|
|
},
|
|
'getElementsByTagName$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return this.getElementsByTagName.apply(this, arguments);
|
|
}
|
|
}
|
|
});
|
|
return node;
|
|
}
|
|
|
|
function objWhitelist(obj, list, noprototype) {
|
|
list = list.split(',');
|
|
for (var i = 0; i < list.length; i++) {
|
|
var prop = list[i];
|
|
if (noprototype) {
|
|
Object.defineProperty(obj, prop + scoping, {
|
|
value : obj[prop],
|
|
configurable : true,
|
|
enumerable : false,
|
|
writable : false
|
|
});
|
|
} else {
|
|
Object.defineProperty(obj.prototype, prop + scoping, {
|
|
writable : false,
|
|
configurable : true,
|
|
enumerable : false,
|
|
value : obj.prototype[prop]
|
|
});
|
|
}
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
function constWhitelist(obj, list, transObj) {
|
|
list = list.split(',');
|
|
for (var i = 0; i < list.length; i++) {
|
|
var prop = list[i];
|
|
if (transObj) {
|
|
Object.defineProperty(transObj, prop + scoping, {
|
|
value : obj[prop],
|
|
configurable : true,
|
|
enumerable : false,
|
|
writable : false
|
|
});
|
|
} else {
|
|
Object.defineProperty(obj, prop + scoping, {
|
|
value : obj[prop],
|
|
configurable : true,
|
|
enumerable : false,
|
|
writable : false
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
function FUNCTION() {
|
|
var args = arguments, converted, js = MentalJS(), i, funct, functArgs = [];
|
|
if (args.length > 1) {
|
|
funct = '(function anonymous(';
|
|
for ( i = 0; i < args.length - 1; i++) {
|
|
args[i] = args[i] + '';
|
|
args[i] = args[i].replace(/[^\w]/ig, function(c) {
|
|
if (c.charCodeAt(0) < 0x80) {
|
|
return '';
|
|
}
|
|
});
|
|
functArgs.push(args[i]);
|
|
}
|
|
funct += functArgs.join(',');
|
|
funct += '){' + args[args.length - 1] + '})';
|
|
converted = js.parse(funct);
|
|
} else {
|
|
funct = '(function anonymous(){' + args[0] + '})';
|
|
converted = js.parse(funct);
|
|
}
|
|
if (config.functionCode) {
|
|
config.functionCode(converted);
|
|
}
|
|
return converted;
|
|
}
|
|
|
|
|
|
FUNCTION.constructor$ = FUNCTION;
|
|
Function$ = FUNCTION;
|
|
Boolean.constructor$ = Function$;
|
|
Boolean.prototype.constructor$ = Boolean;
|
|
Boolean$ = Boolean;
|
|
Function.prototype.constructor$ = Function$;
|
|
objWhitelist(Function, 'call,apply');
|
|
objWhitelist(String, 'charAt,charCodeAt,concat,indexOf,lastIndexOf,localeCompare,match,replace,search,slice,split,substr,substring,toLocaleLowerCase,toLocaleString,toLocaleUpperCase,toLowerCase,toUpperCase');
|
|
String = objWhitelist(String, 'fromCharCode', true);
|
|
String.prototype.constructor$ = String;
|
|
String.constructor$ = Function$;
|
|
String$ = String;
|
|
|
|
objWhitelist(Array, 'sort,join,pop,push,reverse,shift,slice,splice,unshift,concat');
|
|
Array.prototype.constructor$ = Array;
|
|
Array.constructor$ = Function$;
|
|
Array$ = Array;
|
|
objWhitelist(RegExp, 'compile,exec,test');
|
|
RegExp.prototype.constructor$ = RegExp;
|
|
Object.defineProperty(RegExp.prototype, 'source$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.source
|
|
}
|
|
});
|
|
RegExp.lastMatch$ = RegExp.lastMatch;
|
|
RegExp.lastParen$ = RegExp.lastParen;
|
|
RegExp.leftContext$ = RegExp.leftContext;
|
|
RegExp.constructor$ = Function$;
|
|
RegExp$ = RegExp;
|
|
objWhitelist(Number, 'toExponential,toFixed,toPrecision');
|
|
constWhitelist(Number, 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY');
|
|
Number.constructor$ = Function$;
|
|
Number.prototype.constructor$ = Number;
|
|
Number$ = Number;
|
|
objWhitelist(Date, 'getDate,getDay,getFullYear,getHours,getMilliseconds,getMinutes,getMonth,getSeconds,getTime,getTimezoneOffset,getUTCDate,getUTCDay,getUTCFullYear,getUTCHours,getUTCMilliseconds,getUTCMinutes,getUTCMonth,getUTCSeconds,getYear,setDate,setFullYear,setHours,setMilliseconds,setMinutes,setMonth,setSeconds,setTime,setUTCDate,setUTCFullYear,setUTCHours,setUTCMilliseconds,setUTCMinutes,setUTCMonth,setUTCSeconds,setYear,toDateString,toGMTString,toLocaleDateString,toLocaleString,toLocaleTimeString,toTimeString,toUTCString');
|
|
Date.prototype.constructor$ = Date;
|
|
Date.constructor$ = Function$;
|
|
Date$ = Date;
|
|
objWhitelist(Math, 'abs,acos,asin,atan,atan2,ceil,cos,exp,floor,log,max,min,pow,random,round,sin,sqrt,tan', true);
|
|
constWhitelist(Math, 'E,LN10,LN2,LOG10E,LOG2E,PI,SQRT1_2,SQRT2');
|
|
Math.constructor$ = Object;
|
|
Math$ = Math;
|
|
constWhitelist(window, 'decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,escape,isFinite,isNaN,parseFloat,parseInt,unescape', window);
|
|
function CLEAR_INTERVAL(id) {
|
|
id = +id;
|
|
if ( typeof setIntervalIDS[id] === 'undefined') {
|
|
return null;
|
|
}
|
|
return clearInterval(id);
|
|
}
|
|
|
|
clearInterval$ = CLEAR_INTERVAL;
|
|
var CLEAR_TIMEOUT = function(id) {
|
|
id = +id;
|
|
if ( typeof setTimeoutIDS[id] === 'undefined') {
|
|
return null;
|
|
}
|
|
return clearTimeout(id);
|
|
};
|
|
clearTimeout$ = CLEAR_TIMEOUT;
|
|
var SET_TIMEOUT = function(func, time) {
|
|
time = +time;
|
|
if ( typeof func !== 'function') {
|
|
func = FUNCTION(func);
|
|
}
|
|
var id = +setTimeout(func, time);
|
|
setTimeoutIDS[id] = true;
|
|
return id;
|
|
};
|
|
setTimeout$ = SET_TIMEOUT;
|
|
var SET_INTERVAL = function(func, time) {
|
|
time = +time;
|
|
if ( typeof func !== 'function') {
|
|
func = FUNCTION(func);
|
|
}
|
|
var id = +setInterval(func, time);
|
|
setIntervalIDS[id] = true;
|
|
return id;
|
|
};
|
|
setInterval$ = SET_INTERVAL;
|
|
var ALERT = function(str) {
|
|
alert(str);
|
|
};
|
|
alert$ = ALERT;
|
|
var EVAL = function(str) {
|
|
var js = MentalJS(), converted;
|
|
if ( typeof str !== 'function') {
|
|
return eval(js.parse({
|
|
options : {
|
|
eval : false
|
|
},
|
|
code : str,
|
|
converted : function(converted) {
|
|
if (config.evalCode) {
|
|
config.evalCode(converted);
|
|
}
|
|
}
|
|
}));
|
|
} else {
|
|
if (config.evalCode) {
|
|
config.evalCode(str);
|
|
}
|
|
return eval(str);
|
|
}
|
|
};
|
|
eval$ = EVAL;
|
|
Object.constructor$ = Function$;
|
|
Object.defineProperty(Object.prototype, 'constructor$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.constructor;
|
|
}
|
|
});
|
|
Object.prototype.hasOwnProperty$ = Object.prototype.hasOwnProperty;
|
|
objWhitelist(Object, 'valueOf');
|
|
objWhitelist(Object, 'toString');
|
|
Object$ = Object;
|
|
Object.defineProperty(Object.prototype, 'prototype$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.prototype;
|
|
},
|
|
set : function(obj) {
|
|
this.prototype = obj;
|
|
}
|
|
});
|
|
Object.defineProperty(Object.prototype, 'length$', {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.length;
|
|
},
|
|
set : function(len) {
|
|
this.length = len;
|
|
}
|
|
});
|
|
|
|
Object.preventExtensions(Object.prototype);
|
|
Object.preventExtensions(Array.prototype);
|
|
|
|
Object.defineProperties(window, {
|
|
'undefined$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value :
|
|
void 1
|
|
},
|
|
'document$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : document
|
|
},
|
|
'Object$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Object
|
|
},
|
|
'eval$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : EVAL
|
|
},
|
|
'alert$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : ALERT
|
|
},
|
|
'setInterval$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : SET_INTERVAL
|
|
},
|
|
'setTimeout$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : SET_TIMEOUT
|
|
},
|
|
'clearInterval$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : CLEAR_INTERVAL
|
|
},
|
|
'clearTimeout$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : CLEAR_TIMEOUT
|
|
},
|
|
'Math$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Math
|
|
},
|
|
'Date$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Date
|
|
},
|
|
'Number$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Number
|
|
},
|
|
'RegExp$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : RegExp
|
|
},
|
|
'Array$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Array
|
|
},
|
|
'String$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : String
|
|
},
|
|
'Boolean$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : Boolean
|
|
},
|
|
'Function$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : FUNCTION
|
|
},
|
|
'decodeURI$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : decodeURI
|
|
},
|
|
'decodeURIComponent$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : decodeURIComponent
|
|
},
|
|
'encodeURI$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : encodeURI
|
|
},
|
|
'encodeURIComponent$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : encodeURIComponent
|
|
},
|
|
'escape$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : escape
|
|
},
|
|
'isFinite$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : isFinite
|
|
},
|
|
'isNaN$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : isNaN
|
|
},
|
|
'parseFloat$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : parseFloat
|
|
},
|
|
'parseInt$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : parseInt
|
|
},
|
|
'unescape$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : unescape
|
|
},
|
|
'location$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : {}
|
|
},
|
|
'navigator$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : {}
|
|
},
|
|
'removeEventListener$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return window.removeEventListener.apply(document, arguments);
|
|
}
|
|
},
|
|
'addEventListener$' : {
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
if ( typeof arguments[1] !== 'function') {
|
|
error("Expected function in event listener");
|
|
}
|
|
return window.addEventListener.apply(window, arguments);
|
|
}
|
|
}
|
|
});
|
|
|
|
if (config.dom) {
|
|
Object.defineProperties(window.location$, {
|
|
'toString' : {
|
|
configurable : true,
|
|
value : function() {
|
|
return 'http://sandboxed';
|
|
}
|
|
},
|
|
'valueOf' : {
|
|
configurable : true,
|
|
value : function() {
|
|
return 'http://sandboxed';
|
|
}
|
|
},
|
|
'href$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return 'http://sandboxed';
|
|
}
|
|
},
|
|
'replace$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return function() {
|
|
};
|
|
}
|
|
},
|
|
'reload$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return function() {
|
|
}
|
|
}
|
|
},
|
|
'assign$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return function() {
|
|
}
|
|
}
|
|
},
|
|
'hash$' : {
|
|
configurable : true,
|
|
set : function(hash) {
|
|
location.hash = hash;
|
|
},
|
|
get : function() {
|
|
return location.hash
|
|
}
|
|
},
|
|
'host$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return 'sandboxed'
|
|
}
|
|
},
|
|
'hostname$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return 'sandboxed'
|
|
}
|
|
},
|
|
'pathname$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return '/'
|
|
}
|
|
},
|
|
'port$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return ''
|
|
}
|
|
},
|
|
'protocol$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return 'http:'
|
|
}
|
|
},
|
|
'search$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return ''
|
|
}
|
|
}
|
|
});
|
|
Object.defineProperties(window.navigator$, {
|
|
'appCodeName$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.appCodeName
|
|
}
|
|
},
|
|
'appName$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.appName
|
|
}
|
|
},
|
|
'appVersion$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.appVersion
|
|
}
|
|
},
|
|
'language$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.language
|
|
}
|
|
},
|
|
'onLine$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.onLine
|
|
}
|
|
},
|
|
'oscpu$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.oscpu
|
|
}
|
|
},
|
|
'platform$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.platform
|
|
}
|
|
},
|
|
'product$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.product
|
|
}
|
|
},
|
|
'productSub$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.productSub
|
|
}
|
|
},
|
|
'userAgent$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.userAgent
|
|
}
|
|
},
|
|
'vendor$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.vendor
|
|
}
|
|
},
|
|
'vendorSub$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return navigator.vendorSub
|
|
}
|
|
}
|
|
});
|
|
Object.defineProperties(document.documentElement, {
|
|
'nodeName$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.documentElement.nodeName
|
|
},
|
|
'contains$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.documentElement.contains.apply(document.documentElement, arguments)
|
|
}
|
|
},
|
|
'compareDocumentPosition$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.documentElement.compareDocumentPosition.apply(document.documentElement, arguments)
|
|
}
|
|
}
|
|
});
|
|
createSandboxedNode(Element.prototype);
|
|
createSandboxedNode(DocumentFragment.prototype);
|
|
Object.defineProperties(HTMLScriptElement.prototype, {
|
|
'innerText$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerText;
|
|
},
|
|
set : function() {
|
|
}
|
|
},
|
|
'textContent$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.textContent;
|
|
},
|
|
set : function() {
|
|
}
|
|
},
|
|
'text$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.text;
|
|
},
|
|
set : function() {
|
|
}
|
|
},
|
|
'innerHTML$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerHTML;
|
|
},
|
|
set : function() {
|
|
}
|
|
}
|
|
});
|
|
Object.defineProperties(HTMLStyleElement.prototype, {
|
|
'innerText$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerText;
|
|
},
|
|
set : function(innerText) {
|
|
this.innerText = innerText;
|
|
}
|
|
},
|
|
'textContent$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.textContent;
|
|
},
|
|
set : function(textContent) {
|
|
this.textContent = textContent;
|
|
}
|
|
},
|
|
'text$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.text;
|
|
},
|
|
set : function(text) {
|
|
this.text = text;
|
|
}
|
|
},
|
|
'innerHTML$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return this.innerHTML;
|
|
},
|
|
set : function() {
|
|
}
|
|
}
|
|
});
|
|
|
|
Object.defineProperties(document, {
|
|
'ownerDocument$' : {
|
|
configurable : true,
|
|
get : function() {
|
|
return document.ownerDocument;
|
|
}
|
|
},
|
|
'nodeName$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.nodeName
|
|
},
|
|
'nodeType$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.nodeType
|
|
},
|
|
'compatMode$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.compatMode
|
|
},
|
|
'head$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.head
|
|
},
|
|
'defaultView$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : window
|
|
},
|
|
'documentElement$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.documentElement
|
|
},
|
|
'readyState$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.readyState
|
|
},
|
|
'body$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.body
|
|
},
|
|
'createTextNode$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.createTextNode.apply(document, arguments)
|
|
}
|
|
},
|
|
'createDocumentFragment$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : document.createDocumentFragment
|
|
},
|
|
'getElementById$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.getElementById.apply(document, arguments)
|
|
}
|
|
},
|
|
'getElementsByTagName$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.getElementsByTagName.apply(document, arguments)
|
|
}
|
|
},
|
|
'querySelector$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.querySelector.apply(document, arguments)
|
|
}
|
|
},
|
|
'querySelectorAll$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.querySelectorAll.apply(document, arguments)
|
|
}
|
|
},
|
|
'createElement$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function(tag) {
|
|
if (!allowedTagsRegEx.test(tag)) {
|
|
return false;
|
|
}
|
|
return document.createElement.call(document, tag);
|
|
}
|
|
},
|
|
'removeEventListener$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
return document.removeEventListener.apply(document, arguments);
|
|
}
|
|
},
|
|
'addEventListener$' : {
|
|
enumerable : false,
|
|
configurable : true,
|
|
writable : false,
|
|
value : function() {
|
|
if ( typeof arguments[1] != 'function') {
|
|
error("Expected function in event listener")
|
|
}
|
|
return document.addEventListener.apply(document, arguments);
|
|
}
|
|
}
|
|
});
|
|
|
|
Object.freeze(Element.prototype);
|
|
Object.freeze(DocumentFragment.prototype);
|
|
Object.freeze(HTMLScriptElement.prototype);
|
|
Object.freeze(HTMLStyleElement.prototype);
|
|
}
|
|
};
|
|
|
|
this.parse = function(obj) {
|
|
if (!Object.defineProperty) {
|
|
error("MentalJS requires ES5. Please upgrade your browser.");
|
|
}
|
|
var parseTreeOutput = '', converted, pos = 0, chr, index, result;
|
|
|
|
function error(str) {
|
|
var e = new Error();
|
|
throw {
|
|
msg : str + (e.stack ? ' - ' + e.stack : ''),
|
|
pos : pos,
|
|
chr : typeof chr === 'undefined' ? '(end)' : chr,
|
|
state : parseTreeOutput,
|
|
text : code.slice(pos - 10, pos + 10),
|
|
code : this.code
|
|
};
|
|
}
|
|
|
|
function execute(code) {
|
|
var result;
|
|
window['window' + scoping] = this;
|
|
result = eval(code);
|
|
if (that.result) {
|
|
that.result(result);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function rewrite(code) {
|
|
this.code = code;
|
|
var parentState, parentStates = {}, msg, state = 89, left = 0, output = '', outputLine = '', next, next2, next3, cached = -1, len = code.length, parseTree = that.parseTree, lookupSquare = 1, lookupCurly = 1, lookupParen = 1, ternaryCount = 0, isTernary = {}, caseCount = 0, isCase = {}, isVar = {}, isFor = {}, isForIn = {}, isIf = {}, isObjectLiteral = {}, lastState = 89, newLineFlag = 0, parseTreeFlag = !!that.parseTree, completeFlag = !!that.complete, convertedFlag = !!that.converted, foundKeyword = 0, commentSkip = 0;
|
|
function asi(useOutput) {
|
|
var parenIndex = lookupParen - 1, index1 = parseFloat('' + lookupSquare + lookupCurly + parenIndex), index2 = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
if (isFor[index1] && !isForIn[index1]) {
|
|
lastState = 45;
|
|
if (useOutput) {
|
|
output += ';';
|
|
} else {
|
|
outputLine += ';';
|
|
}
|
|
if (isFor[index1] > 2) {
|
|
error("Syntax error unexpected for semi ;");
|
|
}
|
|
isFor[index1]++;
|
|
isVar[index2] = 0;
|
|
} else {
|
|
if (useOutput) {
|
|
output += ';';
|
|
} else {
|
|
outputLine = ';' + outputLine;
|
|
}
|
|
lastState = 35;
|
|
left = 0;
|
|
isVar[index2] = 0;
|
|
}
|
|
};
|
|
function isValidVariable(c) {
|
|
return c === 170 || c === 181 || c === 186 || c > 191 && c < 215 || c > 215 && c < 247 || c > 247 && c < 706 || c > 709 && c < 722 || c > 735 && c < 741 || c === 748 || c === 750 || c > 879 && c < 885 || c > 885 && c < 888 || c > 889 && c < 894 || c === 902 || c > 903 && c < 907 || c === 908 || c > 909 && c < 930 || c > 930 && c < 1014 || c > 1014 && c < 1154 || c > 1161 && c < 1320 || c > 1328 && c < 1367 || c === 1369 || c > 1376 && c < 1416 || c > 1487 && c < 1515 || c > 1519 && c < 1523 || c > 1567 && c < 1611 || c > 1645 && c < 1648 || c > 1648 && c < 1748 || c === 1749 || c > 1764 && c < 1767 || c > 1773 && c < 1776 || c > 1785 && c < 1789 || c === 1791 || c === 1808 || c > 1809 && c < 1840 || c > 1868 && c < 1958 || c === 1969 || c > 1993 && c < 2027 || c > 2035 && c < 2038 || c === 2042 || c > 2047 && c < 2070 || c === 2074 || c === 2084 || c === 2088 || c > 2111 && c < 2137 || c === 2208 || c > 2209 && c < 2221 || c > 2307 && c < 2362 || c === 2365 || c === 2384 || c > 2391 && c < 2402 || c > 2416 && c < 2424 || c > 2424 && c < 2432 || c > 2436 && c < 2445 || c > 2446 && c < 2449 || c > 2450 && c < 2473 || c > 2473 && c < 2481 || c === 2482 || c > 2485 && c < 2490 || c === 2493 || c === 2510 || c > 2523 && c < 2526 || c > 2526 && c < 2530 || c > 2543 && c < 2546 || c > 2564 && c < 2571 || c > 2574 && c < 2577 || c > 2578 && c < 2601 || c > 2601 && c < 2609 || c > 2609 && c < 2612 || c > 2612 && c < 2615 || c > 2615 && c < 2618 || c > 2648 && c < 2653 || c === 2654 || c > 2673 && c < 2677 || c > 2692 && c < 2702 || c > 2702 && c < 2706 || c > 2706 && c < 2729 || c > 2729 && c < 2737 || c > 2737 && c < 2740 || c > 2740 && c < 2746 || c === 2749 || c === 2768 || c > 2783 && c < 2786 || c > 2820 && c < 2829 || c > 2830 && c < 2833 || c > 2834 && c < 2857 || c > 2857 && c < 2865 || c > 2865 && c < 2868 || c > 2868 && c < 2874 || c === 2877 || c > 2907 && c < 2910 || c > 2910 && c < 2914 || c === 2929 || c === 2947 || c > 2948 && c < 2955 || c > 2957 && c < 2961 || c > 2961 && c < 2966 || c > 2968 && c < 2971 || c === 2972 || c > 2973 && c < 2976 || c > 2978 && c < 2981 || c > 2983 && c < 2987 || c > 2989 && c < 3002 || c === 3024 || c > 3076 && c < 3085 || c > 3085 && c < 3089 || c > 3089 && c < 3113 || c > 3113 && c < 3124 || c > 3124 && c < 3130 || c === 3133 || c > 3159 && c < 3162 || c > 3167 && c < 3170 || c > 3204 && c < 3213 || c > 3213 && c < 3217 || c > 3217 && c < 3241 || c > 3241 && c < 3252 || c > 3252 && c < 3258 || c === 3261 || c === 3294 || c > 3295 && c < 3298 || c > 3312 && c < 3315 || c > 3332 && c < 3341 || c > 3341 && c < 3345 || c > 3345 && c < 3387 || c === 3389 || c === 3406 || c > 3423 && c < 3426 || c > 3449 && c < 3456 || c > 3460 && c < 3479 || c > 3481 && c < 3506 || c > 3506 && c < 3516 || c === 3517 || c > 3519 && c < 3527 || c > 3584 && c < 3633 || c > 3633 && c < 3636 || c > 3647 && c < 3655 || c > 3712 && c < 3715 || c === 3716 || c > 3718 && c < 3721 || c === 3722 || c === 3725 || c > 3731 && c < 3736 || c > 3736 && c < 3744 || c > 3744 && c < 3748 || c === 3749 || c === 3751 || c > 3753 && c < 3756 || c > 3756 && c < 3761 || c > 3761 && c < 3764 || c === 3773 || c > 3775 && c < 3781 || c === 3782 || c > 3803 && c < 3808 || c === 3840 || c > 3903 && c < 3912 || c > 3912 && c < 3949 || c > 3975 && c < 3981 || c > 4095 && c < 4139 || c === 4159 || c > 4175 && c < 4182 || c > 4185 && c < 4190 || c === 4193 || c > 4196 && c < 4199 || c > 4205 && c < 4209 || c > 4212 && c < 4226 || c === 4238 || c > 4255 && c < 4294 || c === 4295 || c === 4301 || c > 4303 && c < 4347 || c > 4347 && c < 4681 || c > 4681 && c < 4686 || c > 4687 && c < 4695 || c === 4696 || c > 4697 && c < 4702 || c > 4703 && c < 4745 || c > 4745 && c < 4750 || c > 4751 && c < 4785 || c > 4785 && c < 4790 || c > 4791 && c < 4799 || c === 4800 || c > 4801 && c < 4806 || c > 4807 && c < 4823 || c > 4823 && c < 4881 || c > 4881 && c < 4886 || c > 4887 && c < 4955 || c > 4991 && c < 5008 || c > 5023 && c < 5109 || c > 5120 && c < 5741 || c > 5742 && c < 5760 || c > 5760 && c < 5787 || c > 5791 && c < 5867 || c > 5869 && c < 5873 || c > 5887 && c < 5901 || c > 5901 && c < 5906 || c > 5919 && c < 5938 || c > 5951 && c < 5970 || c > 5983 && c < 5997 || c > 5997 && c < 6001 || c > 6015 && c < 6068 || c === 6103 || c === 6108 || c > 6175 && c < 6264 || c > 6271 && c < 6313 || c === 6314 || c > 6319 && c < 6390 || c > 6399 && c < 6429 || c > 6479 && c < 6510 || c > 6511 && c < 6517 || c > 6527 && c < 6572 || c > 6592 && c < 6600 || c > 6655 && c < 6679 || c > 6687 && c < 6741 || c === 6823 || c > 6916 && c < 6964 || c > 6980 && c < 6988 || c > 7042 && c < 7073 || c > 7085 && c < 7088 || c > 7097 && c < 7142 || c > 7167 && c < 7204 || c > 7244 && c < 7248 || c > 7257 && c < 7294 || c > 7400 && c < 7405 || c > 7405 && c < 7410 || c > 7412 && c < 7415 || c > 7423 && c < 7616 || c > 7679 && c < 7958 || c > 7959 && c < 7966 || c > 7967 && c < 8006 || c > 8007 && c < 8014 || c > 8015 && c < 8024 || c === 8025 || c === 8027 || c === 8029 || c > 8030 && c < 8062 || c > 8063 && c < 8117 || c > 8117 && c < 8125 || c === 8126 || c > 8129 && c < 8133 || c > 8133 && c < 8141 || c > 8143 && c < 8148 || c > 8149 && c < 8156 || c > 8159 && c < 8173 || c > 8177 && c < 8181 || c > 8181 && c < 8189 || c === 8305 || c === 8319 || c > 8335 && c < 8349 || c === 8450 || c === 8455 || c > 8457 && c < 8468 || c === 8469 || c > 8472 && c < 8478 || c === 8484 || c === 8486 || c === 8488 || c > 8489 && c < 8494 || c > 8494 && c < 8506 || c > 8507 && c < 8512 || c > 8516 && c < 8522 || c === 8526 || c > 8543 && c < 8585 || c > 11263 && c < 11311 || c > 11311 && c < 11359 || c > 11359 && c < 11493 || c > 11498 && c < 11503 || c > 11505 && c < 11508 || c > 11519 && c < 11558 || c === 11559 || c === 11565 || c > 11567 && c < 11624 || c === 11631 || c > 11647 && c < 11671 || c > 11679 && c < 11687 || c > 11687 && c < 11695 || c > 11695 && c < 11703 || c > 11703 && c < 11711 || c > 11711 && c < 11719 || c > 11719 && c < 11727 || c > 11727 && c < 11735 || c > 11735 && c < 11743 || c === 11823 || c > 12292 && c < 12296 || c > 12320 && c < 12330 || c > 12336 && c < 12342 || c > 12343 && c < 12349 || c > 12352 && c < 12439 || c > 12444 && c < 12448 || c > 12448 && c < 12539 || c > 12539 && c < 12544 || c > 12548 && c < 12590 || c > 12592 && c < 12687 || c > 12703 && c < 12731 || c > 12783 && c < 12800 || c > 13311 && c < 19894 || c > 19967 && c < 40909 || c > 40959 && c < 42125 || c > 42191 && c < 42238 || c > 42239 && c < 42509 || c > 42511 && c < 42528 || c > 42537 && c < 42540 || c > 42559 && c < 42607 || c > 42622 && c < 42648 || c > 42655 && c < 42736 || c > 42774 && c < 42784 || c > 42785 && c < 42889 || c > 42890 && c < 42895 || c > 42895 && c < 42900 || c > 42911 && c < 42923 || c > 42999 && c < 43010 || c > 43010 && c < 43014 || c > 43014 && c < 43019 || c > 43019 && c < 43043 || c > 43071 && c < 43124 || c > 43137 && c < 43188 || c > 43249 && c < 43256 || c === 43259 || c > 43273 && c < 43302 || c > 43311 && c < 43335 || c > 43359 && c < 43389 || c > 43395 && c < 43443 || c === 43471 || c > 43519 && c < 43561 || c > 43583 && c < 43587 || c > 43587 && c < 43596 || c > 43615 && c < 43639 || c === 43642 || c > 43647 && c < 43696 || c === 43697 || c > 43700 && c < 43703 || c > 43704 && c < 43710 || c === 43712 || c === 43714 || c > 43738 && c < 43742 || c > 43743 && c < 43755 || c > 43761 && c < 43765 || c > 43776 && c < 43783 || c > 43784 && c < 43791 || c > 43792 && c < 43799 || c > 43807 && c < 43815 || c > 43815 && c < 43823 || c > 43967 && c < 44003 || c > 44031 && c < 55204 || c > 55215 && c < 55239 || c > 55242 && c < 55292 || c > 63743 && c < 64110 || c > 64111 && c < 64218 || c > 64255 && c < 64263 || c > 64274 && c < 64280 || c === 64285 || c > 64286 && c < 64297 || c > 64297 && c < 64311 || c > 64311 && c < 64317 || c === 64318 || c > 64319 && c < 64322 || c > 64322 && c < 64325 || c > 64325 && c < 64434 || c > 64466 && c < 64830 || c > 64847 && c < 64912 || c > 64913 && c < 64968 || c > 65007 && c < 65020 || c > 65135 && c < 65141 || c > 65141 && c < 65277 || c > 65312 && c < 65339 || c > 65344 && c < 65371 || c > 65381 && c < 65471 || c > 65473 && c < 65480 || c > 65481 && c < 65488 || c > 65489 && c < 65496 || c > 65497 && c < 65501;
|
|
}
|
|
|
|
function isValidVariablePart(c) {
|
|
return c === 170 || c === 181 || c === 186 || c > 191 && c < 215 || c > 215 && c < 247 || c > 247 && c < 706 || c > 709 && c < 722 || c > 735 && c < 741 || c === 748 || c === 750 || c > 767 && c < 885 || c > 885 && c < 888 || c > 889 && c < 894 || c === 902 || c > 903 && c < 907 || c === 908 || c > 909 && c < 930 || c > 930 && c < 1014 || c > 1014 && c < 1154 || c > 1154 && c < 1160 || c > 1161 && c < 1320 || c > 1328 && c < 1367 || c === 1369 || c > 1376 && c < 1416 || c > 1424 && c < 1470 || c === 1471 || c > 1472 && c < 1475 || c > 1475 && c < 1478 || c === 1479 || c > 1487 && c < 1515 || c > 1519 && c < 1523 || c > 1551 && c < 1563 || c > 1567 && c < 1642 || c > 1645 && c < 1748 || c > 1748 && c < 1757 || c > 1758 && c < 1769 || c > 1769 && c < 1789 || c === 1791 || c > 1807 && c < 1867 || c > 1868 && c < 1970 || c > 1983 && c < 2038 || c === 2042 || c > 2047 && c < 2094 || c > 2111 && c < 2140 || c === 2208 || c > 2209 && c < 2221 || c > 2275 && c < 2303 || c > 2303 && c < 2404 || c > 2405 && c < 2416 || c > 2416 && c < 2424 || c > 2424 && c < 2432 || c > 2432 && c < 2436 || c > 2436 && c < 2445 || c > 2446 && c < 2449 || c > 2450 && c < 2473 || c > 2473 && c < 2481 || c === 2482 || c > 2485 && c < 2490 || c > 2491 && c < 2501 || c > 2502 && c < 2505 || c > 2506 && c < 2511 || c === 2519 || c > 2523 && c < 2526 || c > 2526 && c < 2532 || c > 2533 && c < 2546 || c > 2560 && c < 2564 || c > 2564 && c < 2571 || c > 2574 && c < 2577 || c > 2578 && c < 2601 || c > 2601 && c < 2609 || c > 2609 && c < 2612 || c > 2612 && c < 2615 || c > 2615 && c < 2618 || c === 2620 || c > 2621 && c < 2627 || c > 2630 && c < 2633 || c > 2634 && c < 2638 || c === 2641 || c > 2648 && c < 2653 || c === 2654 || c > 2661 && c < 2678 || c > 2688 && c < 2692 || c > 2692 && c < 2702 || c > 2702 && c < 2706 || c > 2706 && c < 2729 || c > 2729 && c < 2737 || c > 2737 && c < 2740 || c > 2740 && c < 2746 || c > 2747 && c < 2758 || c > 2758 && c < 2762 || c > 2762 && c < 2766 || c === 2768 || c > 2783 && c < 2788 || c > 2789 && c < 2800 || c > 2816 && c < 2820 || c > 2820 && c < 2829 || c > 2830 && c < 2833 || c > 2834 && c < 2857 || c > 2857 && c < 2865 || c > 2865 && c < 2868 || c > 2868 && c < 2874 || c > 2875 && c < 2885 || c > 2886 && c < 2889 || c > 2890 && c < 2894 || c > 2901 && c < 2904 || c > 2907 && c < 2910 || c > 2910 && c < 2916 || c > 2917 && c < 2928 || c === 2929 || c > 2945 && c < 2948 || c > 2948 && c < 2955 || c > 2957 && c < 2961 || c > 2961 && c < 2966 || c > 2968 && c < 2971 || c === 2972 || c > 2973 && c < 2976 || c > 2978 && c < 2981 || c > 2983 && c < 2987 || c > 2989 && c < 3002 || c > 3005 && c < 3011 || c > 3013 && c < 3017 || c > 3017 && c < 3022 || c === 3024 || c === 3031 || c > 3045 && c < 3056 || c > 3072 && c < 3076 || c > 3076 && c < 3085 || c > 3085 && c < 3089 || c > 3089 && c < 3113 || c > 3113 && c < 3124 || c > 3124 && c < 3130 || c > 3132 && c < 3141 || c > 3141 && c < 3145 || c > 3145 && c < 3150 || c > 3156 && c < 3159 || c > 3159 && c < 3162 || c > 3167 && c < 3172 || c > 3173 && c < 3184 || c > 3201 && c < 3204 || c > 3204 && c < 3213 || c > 3213 && c < 3217 || c > 3217 && c < 3241 || c > 3241 && c < 3252 || c > 3252 && c < 3258 || c > 3259 && c < 3269 || c > 3269 && c < 3273 || c > 3273 && c < 3278 || c > 3284 && c < 3287 || c === 3294 || c > 3295 && c < 3300 || c > 3301 && c < 3312 || c > 3312 && c < 3315 || c > 3329 && c < 3332 || c > 3332 && c < 3341 || c > 3341 && c < 3345 || c > 3345 && c < 3387 || c > 3388 && c < 3397 || c > 3397 && c < 3401 || c > 3401 && c < 3407 || c === 3415 || c > 3423 && c < 3428 || c > 3429 && c < 3440 || c > 3449 && c < 3456 || c > 3457 && c < 3460 || c > 3460 && c < 3479 || c > 3481 && c < 3506 || c > 3506 && c < 3516 || c === 3517 || c > 3519 && c < 3527 || c === 3530 || c > 3534 && c < 3541 || c === 3542 || c > 3543 && c < 3552 || c > 3569 && c < 3572 || c > 3584 && c < 3643 || c > 3647 && c < 3663 || c > 3663 && c < 3674 || c > 3712 && c < 3715 || c === 3716 || c > 3718 && c < 3721 || c === 3722 || c === 3725 || c > 3731 && c < 3736 || c > 3736 && c < 3744 || c > 3744 && c < 3748 || c === 3749 || c === 3751 || c > 3753 && c < 3756 || c > 3756 && c < 3770 || c > 3770 && c < 3774 || c > 3775 && c < 3781 || c === 3782 || c > 3783 && c < 3790 || c > 3791 && c < 3802 || c > 3803 && c < 3808 || c === 3840 || c > 3863 && c < 3866 || c > 3871 && c < 3882 || c === 3893 || c === 3895 || c === 3897 || c > 3901 && c < 3912 || c > 3912 && c < 3949 || c > 3952 && c < 3973 || c > 3973 && c < 3992 || c > 3992 && c < 4029 || c === 4038 || c > 4095 && c < 4170 || c > 4175 && c < 4254 || c > 4255 && c < 4294 || c === 4295 || c === 4301 || c > 4303 && c < 4347 || c > 4347 && c < 4681 || c > 4681 && c < 4686 || c > 4687 && c < 4695 || c === 4696 || c > 4697 && c < 4702 || c > 4703 && c < 4745 || c > 4745 && c < 4750 || c > 4751 && c < 4785 || c > 4785 && c < 4790 || c > 4791 && c < 4799 || c === 4800 || c > 4801 && c < 4806 || c > 4807 && c < 4823 || c > 4823 && c < 4881 || c > 4881 && c < 4886 || c > 4887 && c < 4955 || c > 4956 && c < 4960 || c > 4991 && c < 5008 || c > 5023 && c < 5109 || c > 5120 && c < 5741 || c > 5742 && c < 5760 || c > 5760 && c < 5787 || c > 5791 && c < 5867 || c > 5869 && c < 5873 || c > 5887 && c < 5901 || c > 5901 && c < 5909 || c > 5919 && c < 5941 || c > 5951 && c < 5972 || c > 5983 && c < 5997 || c > 5997 && c < 6001 || c > 6001 && c < 6004 || c > 6015 && c < 6100 || c === 6103 || c > 6107 && c < 6110 || c > 6111 && c < 6122 || c > 6154 && c < 6158 || c > 6159 && c < 6170 || c > 6175 && c < 6264 || c > 6271 && c < 6315 || c > 6319 && c < 6390 || c > 6399 && c < 6429 || c > 6431 && c < 6444 || c > 6447 && c < 6460 || c > 6469 && c < 6510 || c > 6511 && c < 6517 || c > 6527 && c < 6572 || c > 6575 && c < 6602 || c > 6607 && c < 6618 || c > 6655 && c < 6684 || c > 6687 && c < 6751 || c > 6751 && c < 6781 || c > 6782 && c < 6794 || c > 6799 && c < 6810 || c === 6823 || c > 6911 && c < 6988 || c > 6991 && c < 7002 || c > 7018 && c < 7028 || c > 7039 && c < 7156 || c > 7167 && c < 7224 || c > 7231 && c < 7242 || c > 7244 && c < 7294 || c > 7375 && c < 7379 || c > 7379 && c < 7415 || c > 7423 && c < 7655 || c > 7675 && c < 7958 || c > 7959 && c < 7966 || c > 7967 && c < 8006 || c > 8007 && c < 8014 || c > 8015 && c < 8024 || c === 8025 || c === 8027 || c === 8029 || c > 8030 && c < 8062 || c > 8063 && c < 8117 || c > 8117 && c < 8125 || c === 8126 || c > 8129 && c < 8133 || c > 8133 && c < 8141 || c > 8143 && c < 8148 || c > 8149 && c < 8156 || c > 8159 && c < 8173 || c > 8177 && c < 8181 || c > 8181 && c < 8189 || c > 8203 && c < 8206 || c > 8254 && c < 8257 || c === 8276 || c === 8305 || c === 8319 || c > 8335 && c < 8349 || c > 8399 && c < 8413 || c === 8417 || c > 8420 && c < 8433 || c === 8450 || c === 8455 || c > 8457 && c < 8468 || c === 8469 || c > 8472 && c < 8478 || c === 8484 || c === 8486 || c === 8488 || c > 8489 && c < 8494 || c > 8494 && c < 8506 || c > 8507 && c < 8512 || c > 8516 && c < 8522 || c === 8526 || c > 8543 && c < 8585 || c > 11263 && c < 11311 || c > 11311 && c < 11359 || c > 11359 && c < 11493 || c > 11498 && c < 11508 || c > 11519 && c < 11558 || c === 11559 || c === 11565 || c > 11567 && c < 11624 || c === 11631 || c > 11646 && c < 11671 || c > 11679 && c < 11687 || c > 11687 && c < 11695 || c > 11695 && c < 11703 || c > 11703 && c < 11711 || c > 11711 && c < 11719 || c > 11719 && c < 11727 || c > 11727 && c < 11735 || c > 11735 && c < 11743 || c > 11743 && c < 11776 || c === 11823 || c > 12292 && c < 12296 || c > 12320 && c < 12336 || c > 12336 && c < 12342 || c > 12343 && c < 12349 || c > 12352 && c < 12439 || c > 12440 && c < 12443 || c > 12444 && c < 12448 || c > 12448 && c < 12539 || c > 12539 && c < 12544 || c > 12548 && c < 12590 || c > 12592 && c < 12687 || c > 12703 && c < 12731 || c > 12783 && c < 12800 || c > 13311 && c < 19894 || c > 19967 && c < 40909 || c > 40959 && c < 42125 || c > 42191 && c < 42238 || c > 42239 && c < 42509 || c > 42511 && c < 42540 || c > 42559 && c < 42608 || c > 42611 && c < 42622 || c > 42622 && c < 42648 || c > 42654 && c < 42738 || c > 42774 && c < 42784 || c > 42785 && c < 42889 || c > 42890 && c < 42895 || c > 42895 && c < 42900 || c > 42911 && c < 42923 || c > 42999 && c < 43048 || c > 43071 && c < 43124 || c > 43135 && c < 43205 || c > 43215 && c < 43226 || c > 43231 && c < 43256 || c === 43259 || c > 43263 && c < 43310 || c > 43311 && c < 43348 || c > 43359 && c < 43389 || c > 43391 && c < 43457 || c > 43470 && c < 43482 || c > 43519 && c < 43575 || c > 43583 && c < 43598 || c > 43599 && c < 43610 || c > 43615 && c < 43639 || c > 43641 && c < 43644 || c > 43647 && c < 43715 || c > 43738 && c < 43742 || c > 43743 && c < 43760 || c > 43761 && c < 43767 || c > 43776 && c < 43783 || c > 43784 && c < 43791 || c > 43792 && c < 43799 || c > 43807 && c < 43815 || c > 43815 && c < 43823 || c > 43967 && c < 44011 || c > 44011 && c < 44014 || c > 44015 && c < 44026 || c > 44031 && c < 55204 || c > 55215 && c < 55239 || c > 55242 && c < 55292 || c > 63743 && c < 64110 || c > 64111 && c < 64218 || c > 64255 && c < 64263 || c > 64274 && c < 64280 || c > 64284 && c < 64297 || c > 64297 && c < 64311 || c > 64311 && c < 64317 || c === 64318 || c > 64319 && c < 64322 || c > 64322 && c < 64325 || c > 64325 && c < 64434 || c > 64466 && c < 64830 || c > 64847 && c < 64912 || c > 64913 && c < 64968 || c > 65007 && c < 65020 || c > 65023 && c < 65040 || c > 65055 && c < 65063 || c > 65074 && c < 65077 || c > 65100 && c < 65104 || c > 65135 && c < 65141 || c > 65141 && c < 65277 || c > 65295 && c < 65306 || c > 65312 && c < 65339 || c === 65343 || c > 65344 && c < 65371 || c > 65381 && c < 65471 || c > 65473 && c < 65480 || c > 65481 && c < 65488 || c > 65489 && c < 65496 || c > 65497 && c < 65501;
|
|
}
|
|
|
|
function unicodeEscape(first) {
|
|
pos++;
|
|
var chr1 = code.charCodeAt(pos), chr2 = code.charAt(pos + 1), chr3 = code.charAt(pos + 2), chr4 = code.charAt(pos + 3), chr5 = code.charAt(pos + 4), hex;
|
|
if (chr1 !== 0x75) {
|
|
error("Invalid unicode escape. Expected u.");
|
|
}
|
|
hex = +('0x' + chr2 + chr3 + chr4 + chr5);
|
|
if ((hex === hex && hex !== hex) || /[^a-f0-9]/i.test(''+chr2+chr3+chr4+chr5)) {
|
|
error("Invalid unicode escape. Expected valid hex sequence.");
|
|
}
|
|
if (first) {
|
|
if (hex > 0x60 && hex < 0x7b) {
|
|
} else if (hex > 0x40 && hex < 0x5b) {
|
|
} else if (hex === 0x5f || hex === 0x24) {
|
|
} else if (!isValidVariable(hex)) {
|
|
error('illegal unicode escape');
|
|
}
|
|
} else {
|
|
if (hex > 0x60 && hex < 0x7b) {
|
|
} else if (hex > 0x2f && hex < 0x3a) {
|
|
} else if (hex > 0x40 && hex < 0x5b) {
|
|
} else if (hex === 0x5f || hex === 0x24) {
|
|
} else if (!isValidVariablePart(hex)) {
|
|
error('illegal unicode escape');
|
|
}
|
|
}
|
|
pos += 5;
|
|
if (first) {
|
|
if (pos < len) {
|
|
outputLine += '\\u' + chr2 + chr3 + chr4 + chr5;
|
|
nonKeyword();
|
|
return false;
|
|
} else {
|
|
outputLine += '\\u' + chr2 + chr3 + chr4 + chr5 + '$';
|
|
identifierStates();
|
|
identifierAsi();
|
|
}
|
|
} else {
|
|
outputLine += '\\u' + chr2 + chr3 + chr4 + chr5;
|
|
}
|
|
}
|
|
|
|
function keyword(iLen) {
|
|
state = -1;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
left = 0;
|
|
switch(iLen) {
|
|
case 2:
|
|
if (outputLine === 'do') {
|
|
state = 18;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'in') {
|
|
state = 73;
|
|
outputLine = ' ' + outputLine + ' ';
|
|
if (isFor[index]) {
|
|
isForIn[index] = 1;
|
|
}
|
|
} else if (outputLine === 'if') {
|
|
state = 68;
|
|
if (lastState === 32) {
|
|
outputLine = ' ' + outputLine;
|
|
}
|
|
isIf[index] = 1;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (outputLine === 'var') {
|
|
if (!rules[136][lastState]) {
|
|
asi();
|
|
}
|
|
state = 136;
|
|
outputLine += ' ';
|
|
isVar[index] = 1;
|
|
} else if (outputLine === 'new') {
|
|
state = 84;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'NaN') {
|
|
state = 83;
|
|
left = 1;
|
|
} else if (outputLine === 'for') {
|
|
state = 40;
|
|
outputLine += ' ';
|
|
isFor[index] = 1;
|
|
} else if (outputLine === 'try') {
|
|
state = 127;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (outputLine === 'else') {
|
|
if (!isIf[index]) {
|
|
error("Syntax error unexpected else");
|
|
}
|
|
state = 32;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'this') {
|
|
state = 124;
|
|
left = 1;
|
|
} else if (outputLine === 'void') {
|
|
state = 139;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'case') {
|
|
state = 15;
|
|
outputLine += ' ';
|
|
isCase[index] = 1;
|
|
caseCount++;
|
|
} else if (outputLine === 'null') {
|
|
state = 86;
|
|
left = 1;
|
|
} else if (outputLine === 'true') {
|
|
state = 130;
|
|
left = 1;
|
|
} else if (outputLine === 'with') {
|
|
state = 140;
|
|
}
|
|
break;
|
|
case 5:
|
|
if (outputLine === 'throw') {
|
|
state = 131;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'break') {
|
|
state = 14;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'false') {
|
|
state = 36;
|
|
left = 1;
|
|
} else if (outputLine === 'catch') {
|
|
state = 22;
|
|
} else if (outputLine === 'while') {
|
|
state = 145;
|
|
}
|
|
break;
|
|
case 6:
|
|
if (outputLine === 'delete') {
|
|
state = 17;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'return') {
|
|
state = 111;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'typeof') {
|
|
state = 132;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'switch') {
|
|
state = 118;
|
|
}
|
|
break;
|
|
case 7:
|
|
if (outputLine === 'default') {
|
|
state = 16;
|
|
} else if (outputLine === 'finally') {
|
|
state = 37;
|
|
}
|
|
break;
|
|
default:
|
|
if (outputLine === 'function') {
|
|
if (rules[52][lastState]) {
|
|
state = 52;
|
|
} else if (rules[60][lastState]) {
|
|
state = 60;
|
|
} else {
|
|
if (!rules[67][lastState] && newLineFlag) {
|
|
asi();
|
|
state = 60;
|
|
} else {
|
|
error('Unexpected function. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
}
|
|
} else if (outputLine === 'Infinity') {
|
|
state = 74;
|
|
left = 1;
|
|
} else if (outputLine === 'continue') {
|
|
state = 29;
|
|
outputLine += ' ';
|
|
} else if (outputLine === 'instanceof') {
|
|
state = 75;
|
|
left = 1;
|
|
outputLine = ' ' + outputLine + ' ';
|
|
}
|
|
break;
|
|
}
|
|
if (state > -1) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function identifierAsi() {
|
|
if (!rules[state][lastState] && newLineFlag) {
|
|
if (left) {
|
|
asi(true);
|
|
left = 1;
|
|
} else {
|
|
asi(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
function identifier() {
|
|
var iLen, notKeyword = false;
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos);
|
|
if (chr > 0x60 && chr < 0x7b) {
|
|
} else if (chr > 0x40 && chr < 0x5b) {
|
|
} else if (chr > 0x2f && chr < 0x3a) {
|
|
nonKeyword();
|
|
return false;
|
|
} else if (chr === 0x5f || chr === 0x24) {
|
|
nonKeyword();
|
|
return false;
|
|
} else if (chr === 0x5c) {
|
|
unicodeEscape();
|
|
nonKeyword();
|
|
return false;
|
|
} else {
|
|
break;
|
|
}
|
|
outputLine += code.charAt(pos++);
|
|
}
|
|
iLen = outputLine.length;
|
|
if (iLen === 1 || iLen > 10) {
|
|
outputLine = outputLine + scoping;
|
|
identifierStates();
|
|
return false;
|
|
} else {
|
|
if (!keyword(iLen)) {
|
|
outputLine = outputLine + scoping;
|
|
identifierStates();
|
|
return false;
|
|
}
|
|
}
|
|
identifierAsi();
|
|
}
|
|
|
|
function identifierStates() {
|
|
if (rules[50][lastState]) {
|
|
state = 50;
|
|
outputLine = ' ' + outputLine;
|
|
} else if (rules[25][lastState]) {
|
|
state = 25;
|
|
} else if (rules[98][lastState]) {
|
|
state = 98;
|
|
} else if (rules[53][lastState]) {
|
|
state = 53;
|
|
outputLine = ' ' + outputLine;
|
|
} else if (rules[48][lastState]) {
|
|
state = 48;
|
|
} else if (rules[55][lastState]) {
|
|
state = 55;
|
|
} else if (rules[137][lastState]) {
|
|
state = 137;
|
|
left = 1;
|
|
} else if (rules[67][lastState]) {
|
|
state = 67;
|
|
left = 1;
|
|
} else {
|
|
if (!rules[67][lastState] && newLineFlag) {
|
|
asi(true);
|
|
}
|
|
state = 67;
|
|
left = 1;
|
|
}
|
|
}
|
|
|
|
function nonKeyword() {
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos);
|
|
if (chr > 0x60 && chr < 0x7b) {
|
|
} else if (chr > 0x2f && chr < 0x3a) {
|
|
} else if (chr > 0x40 && chr < 0x5b) {
|
|
} else if (chr === 0x5f || chr === 0x24) {
|
|
} else if (chr === 0x5c) {
|
|
unicodeEscape();
|
|
continue;
|
|
} else if (chr > 0x80) {
|
|
if (!isValidVariablePart(chr)) {
|
|
break;
|
|
}
|
|
} else {
|
|
break;
|
|
}
|
|
outputLine += code.charAt(pos++);
|
|
}
|
|
outputLine = outputLine + scoping;
|
|
identifierStates();
|
|
identifierAsi();
|
|
}
|
|
|
|
function newLine() {
|
|
newLineFlag = 1;
|
|
pos++;
|
|
if (lastState === 14 || lastState === 29 || lastState === 111) {
|
|
asi(true);
|
|
}
|
|
}
|
|
|
|
function semicolon() {
|
|
var parentState = parentStates[index], parenIndex = lookupParen - 1, index2 = parseFloat('' + lookupSquare + lookupCurly + parenIndex);
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen)
|
|
if (isFor[index2] && !isForIn[index2]) {
|
|
state = 45;
|
|
outputLine += ';';
|
|
if (isFor[index2] > 2) {
|
|
error("Syntax error unexpected for semi ;");
|
|
}
|
|
isFor[index2]++;
|
|
isVar[index] = 0;
|
|
} else {
|
|
state = 35;
|
|
if (lastState !== 35) {
|
|
outputLine += ';';
|
|
}
|
|
isVar[index] = 0;
|
|
}
|
|
pos++;
|
|
left = 0;
|
|
}
|
|
|
|
function plus() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next === 0x2b && left) {
|
|
state = 107;
|
|
outputLine += '++';
|
|
pos += 2;
|
|
left = 1;
|
|
} else if (next === 0x2b && !left) {
|
|
state = 110;
|
|
outputLine += '++';
|
|
pos += 2;
|
|
left = 0;
|
|
} else if (next === 0x3d) {
|
|
state = 6;
|
|
outputLine += '+=';
|
|
pos += 2;
|
|
left = 0;
|
|
} else if (next !== 0x3d && next !== 0x2b && left) {
|
|
state = 5;
|
|
outputLine += ' + ';
|
|
pos++;
|
|
cached = next;
|
|
left = 0;
|
|
} else if (next !== 0x3d && next !== 0x2b && !left) {
|
|
state = 133;
|
|
outputLine += '+';
|
|
pos++;
|
|
cached = next;
|
|
left = 0;
|
|
} else {
|
|
error('Unexpected + Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
}
|
|
|
|
function nonStandardComment() {
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos++);
|
|
if (chr === 10 || chr === 13 || chr === 8232 || chr == 8233) {
|
|
break;
|
|
}
|
|
}
|
|
cached = -1;
|
|
newLineFlag = 1;
|
|
commentSkip = 1;
|
|
}
|
|
|
|
function singleComment() {
|
|
pos += 2;
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos++);
|
|
if (chr === 10 || chr === 13 || chr === 8232 || chr == 8233) {
|
|
break;
|
|
}
|
|
}
|
|
cached = -1;
|
|
newLineFlag = 1;
|
|
}
|
|
|
|
function multiComment() {
|
|
pos += 2;
|
|
pos = code.indexOf('*/', pos);
|
|
if (pos >= 0) {
|
|
pos += 2;
|
|
} else {
|
|
error('Unterminated comment');
|
|
}
|
|
cached = -1;
|
|
}
|
|
|
|
function regex() {
|
|
var states = {
|
|
escaping : 0,
|
|
complete : 0,
|
|
open : 0,
|
|
square : 0,
|
|
flags : {}
|
|
};
|
|
cached = -1;
|
|
state = 112;
|
|
left = 1;
|
|
states.open = 1;
|
|
outputLine += '/';
|
|
pos++;
|
|
while (pos < len) {
|
|
if (cached >= 0) {
|
|
chr = cached;
|
|
} else {
|
|
chr = code.charCodeAt(pos);
|
|
}
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (chr === 0x2f && !states.escaping && !states.square) {
|
|
states.open = 0;
|
|
if (next !== 0x69 && next !== 0x6d && next !== 0x67) {
|
|
states.complete = 1;
|
|
}
|
|
} else if (chr === 0x2f && !states.escaping && states.square) {
|
|
outputLine += '\\';
|
|
} else if (chr === 0x28 && !states.escaping && states.square) {
|
|
outputLine += '\\';
|
|
} else if (chr === 0x29 && !states.escaping && states.square) {
|
|
outputLine += '\\';
|
|
} else if (chr === 0x5b && !states.escaping && states.square) {
|
|
outputLine += '\\';
|
|
} else if (chr === 0x5b && !states.escaping && !states.square) {
|
|
next2 = code.charCodeAt(pos + 2);
|
|
if (next === 0x5d || (next === 0x5e && next2 === 0x5d)) {
|
|
error("Empty character class not allowed.");
|
|
}
|
|
states.square = 1;
|
|
} else if (chr === 0x5c && !states.escaping) {
|
|
states.escaping = 1;
|
|
} else if (chr === 0x5c && states.escaping) {
|
|
states.escaping = 0;
|
|
} else if (chr === 0x5d && !states.escaping) {
|
|
states.square = 0;
|
|
} else if (chr === 10 || chr === 13 || chr === 8232 || chr == 8233) {
|
|
error("Unterminated regex literal");
|
|
} else if (states.escaping) {
|
|
states.escaping = 0;
|
|
} else if (!states.open && next !== 0x69 && next !== 0x6d && next !== 0x67) {
|
|
if (!states.open && (chr === 0x69 || chr === 0x6d || chr === 0x67) && states.flags[chr]) {
|
|
error("Duplicate regex flag");
|
|
}
|
|
states.complete = 1;
|
|
} else if (!states.open && (chr === 0x69 || chr === 0x6d || chr === 0x67) && !states.flags[chr]) {
|
|
states.flags[chr] = 1;
|
|
}
|
|
outputLine += code.charAt(pos++);
|
|
cached = next;
|
|
if (states.complete) {
|
|
break;
|
|
}
|
|
}
|
|
if (states.open) {
|
|
error("Unterminated regex literal");
|
|
}
|
|
}
|
|
|
|
function numberOrHex() {
|
|
function number() {
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos);
|
|
if (chr >= 0x31 && chr <= 0x39) {
|
|
if (states.e) {
|
|
states.e = 2;
|
|
}
|
|
if (states.e2) {
|
|
states.e2 = 2;
|
|
}
|
|
} else if (chr === 0x30) {
|
|
if (states.zeroFirst && !states.dot) {
|
|
pos++;
|
|
continue;
|
|
}
|
|
if (states.e) {
|
|
states.e = 2;
|
|
}
|
|
if (states.e2) {
|
|
states.e2 = 2;
|
|
}
|
|
} else if (chr === 0x65 || chr === 0x45) {
|
|
if (states.e) {
|
|
break;
|
|
} else {
|
|
states.e = 1;
|
|
}
|
|
} else if (chr === 0x2b || chr === 0x2d) {
|
|
if (states.e === 1 && !states.e2) {
|
|
states.e = 2;
|
|
states.e2 = 1;
|
|
} else {
|
|
cached = chr;
|
|
break;
|
|
}
|
|
} else if (chr === 0x2e) {
|
|
if (states.dot || states.e || (states.zeroFirst && states.output.length != 1)) {
|
|
break;
|
|
}
|
|
states.dot = 1;
|
|
} else {
|
|
cached = chr;
|
|
break;
|
|
}
|
|
states.output = states.output + code.charAt(pos);
|
|
pos++;
|
|
}
|
|
if (states.zeroFirst && !states.output.length) {
|
|
states.output = '0';
|
|
} else if (states.dotFirst) {
|
|
if (states.output.length === 1) {
|
|
error('Expected digit');
|
|
}
|
|
states.output = '0' + states.output;
|
|
} else if (states.e === 1 || states.e2 === 1) {
|
|
error('Expected exponent');
|
|
}
|
|
outputLine += states.output;
|
|
}
|
|
|
|
function hex() {
|
|
var states = {
|
|
output : '0x'
|
|
};
|
|
pos++;
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos);
|
|
if (chr > 0x2f && chr < 0x3a) {
|
|
} else if (chr > 0x60 && chr < 0x67) {
|
|
} else if (chr > 0x40 && chr < 0x47) {
|
|
} else {
|
|
break;
|
|
}
|
|
states.output = states.output + code.charAt(pos);
|
|
pos++;
|
|
}
|
|
if (states.output.length == 2) {
|
|
error('Missing hex digits.');
|
|
}
|
|
outputLine += states.output;
|
|
}
|
|
|
|
var states = {
|
|
dot : 0,
|
|
e : 0,
|
|
e2 : 0,
|
|
complete : 0,
|
|
output : '',
|
|
zeroFirst : 0,
|
|
dotFirst : 0
|
|
};
|
|
if (rules[101][lastState]) {
|
|
state = 101;
|
|
} else if (rules[85][lastState]) {
|
|
left = 1;
|
|
state = 85;
|
|
} else {
|
|
if (!rules[85][lastState] && newLineFlag) {
|
|
asi();
|
|
left = 1;
|
|
state = 85;
|
|
}
|
|
}
|
|
|
|
if (chr === 0x2e) {
|
|
states.output = '.';
|
|
states.dot = 1;
|
|
states.dotFirst = 1;
|
|
} else if (chr === 0x30) {
|
|
states.zeroFirst = 1;
|
|
states.output += '' + code.charAt(pos);
|
|
} else {
|
|
states.output = code.charAt(pos);
|
|
}
|
|
if (pos < len) {
|
|
pos++;
|
|
chr = code.charCodeAt(pos);
|
|
}
|
|
if ((chr === 0x78 || chr === 0x58) && pos < len) {
|
|
hex();
|
|
} else {
|
|
number();
|
|
}
|
|
}
|
|
|
|
function divide() {
|
|
left = 0;
|
|
cached = -1;
|
|
if (next === 0x3d) {
|
|
state = 7;
|
|
pos += 2;
|
|
outputLine += '/=';
|
|
} else {
|
|
state = 21;
|
|
pos++;
|
|
outputLine += ' / ';
|
|
cached = next;
|
|
}
|
|
}
|
|
|
|
function arrayOrAccessorOpen() {
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
if (!left) {
|
|
state = 1;
|
|
} else {
|
|
state = 3;
|
|
}
|
|
outputLine += '[';
|
|
if (state === 3) {
|
|
outputLine += 'M.P(';
|
|
}
|
|
parentStates[index] = state;
|
|
left = 0;
|
|
pos++;
|
|
lookupSquare++;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentStates[index] = state;
|
|
}
|
|
|
|
function arrayOrAccessorClose() {
|
|
lookupSquare--;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
var parentState = parentStates[index];
|
|
if (parentState === 1) {
|
|
state = 2;
|
|
left = 1;
|
|
} else if (parentState === 3) {
|
|
state = 4;
|
|
left = 1;
|
|
outputLine += ')';
|
|
} else {
|
|
error('Unexpected ]. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
outputLine += ']';
|
|
left = 1;
|
|
pos++;
|
|
parentStates[index] = null;
|
|
}
|
|
|
|
function parenOpen() {
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
if (lastState === 50) {
|
|
state = 51;
|
|
} else if (lastState === 40) {
|
|
state = 41;
|
|
} else if (rules[46][lastState]) {
|
|
state = 46;
|
|
} else if (lastState === 68) {
|
|
state = 69;
|
|
} else if (lastState === 22) {
|
|
state = 23;
|
|
} else if (lastState === 145) {
|
|
state = 146;
|
|
} else if (lastState === 118) {
|
|
state = 119;
|
|
} else if (lastState === 140) {
|
|
state = 141;
|
|
} else if (lastState === 53) {
|
|
state = 54;
|
|
} else if (lastState === 52) {
|
|
state = 54;
|
|
} else if (rules[104][lastState]) {
|
|
state = 104;
|
|
} else {
|
|
if (!rules[67][lastState] && newLineFlag) {
|
|
asi();
|
|
state = 104;
|
|
} else {
|
|
error('Unexpected (. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
}
|
|
outputLine += '(';
|
|
pos++;
|
|
parentStates[index] = state;
|
|
left = 0;
|
|
lookupParen++;
|
|
}
|
|
|
|
function parenClose() {
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
isVar[index] = null;
|
|
lookupParen--;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentState = parentStates[index];
|
|
if (rules[57][lastState]) {
|
|
state = 57;
|
|
} else if (parentState === 46) {
|
|
state = 47;
|
|
left = 1;
|
|
} else if (parentState === 41) {
|
|
state = 42;
|
|
left = 0;
|
|
isFor[index] = 0;
|
|
isForIn[index] = 0;
|
|
} else if (parentState === 119) {
|
|
state = 120;
|
|
left = 0;
|
|
} else if (parentState === 23) {
|
|
state = 24;
|
|
left = 0;
|
|
} else if (parentState === 146) {
|
|
state = 147;
|
|
left = 0;
|
|
} else if (parentState === 141) {
|
|
state = 142;
|
|
left = 0;
|
|
} else if (parentState === 69) {
|
|
state = 70;
|
|
left = 0;
|
|
} else if (rules[58][lastState]) {
|
|
state = 58;
|
|
} else if (parentState === 104) {
|
|
state = 106;
|
|
left = 1;
|
|
} else {
|
|
error('Unexpected ). Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
outputLine += ')';
|
|
pos++;
|
|
parentStates[index] = null;
|
|
}
|
|
|
|
function curlyOpen() {
|
|
var curlyIndex = lookupCurly + 1, index = parseFloat('' + lookupSquare + curlyIndex + lookupParen);
|
|
if (lastState === 57) {
|
|
state = 61;
|
|
} else if (lastState === 18) {
|
|
state = 19;
|
|
} else if (lastState === 32) {
|
|
state = 33;
|
|
} else if (lastState === 147) {
|
|
state = 148;
|
|
} else if (lastState === 24) {
|
|
state = 26;
|
|
} else if (lastState === 42) {
|
|
state = 43;
|
|
} else if (lastState === 142) {
|
|
state = 143;
|
|
} else if (lastState === 127) {
|
|
state = 128;
|
|
} else if (lastState === 120) {
|
|
state = 121;
|
|
} else if (lastState === 70) {
|
|
state = 71;
|
|
} else if (lastState === 37) {
|
|
state = 38;
|
|
} else if (lastState === 58) {
|
|
state = 59;
|
|
} else if (rules[96][lastState]) {
|
|
state = 96;
|
|
parentStates[index] = state;
|
|
outputLine += 'M.O(';
|
|
} else if (rules[9][lastState]) {
|
|
state = 9;
|
|
} else {
|
|
if (!rules[67][lastState] && newLineFlag) {
|
|
asi();
|
|
if (lastState === 45) {
|
|
state = 96;
|
|
parentStates[index] = state;
|
|
outputLine += 'M.O(';
|
|
} else {
|
|
state = 9;
|
|
}
|
|
} else {
|
|
error('Unexpected {. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
}
|
|
outputLine += '{';
|
|
if (state === 61 || state === 59) {
|
|
outputLine += 'var arguments$=M.A(arguments);';
|
|
}
|
|
pos++;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentStates[index] = state;
|
|
left = 0;
|
|
lookupCurly++;
|
|
}
|
|
|
|
function curlyClose() {
|
|
var curlyIndex;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
isVar[index] = null;
|
|
lookupCurly--;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentState = parentStates[index];
|
|
outputLine += '}';
|
|
if (parentState === 61) {
|
|
state = 62;
|
|
left = 0;
|
|
} else if (parentState === 33) {
|
|
state = 34;
|
|
left = 0;
|
|
} else if (parentState === 96) {
|
|
state = 97;
|
|
left = 1;
|
|
curlyIndex = lookupCurly + 1;
|
|
index = parseFloat('' + lookupSquare + curlyIndex + lookupParen);
|
|
isObjectLiteral[index] = 0;
|
|
outputLine += ')';
|
|
} else if (parentState === 43) {
|
|
state = 44;
|
|
left = 0;
|
|
} else if (parentState === 148) {
|
|
state = 149;
|
|
left = 0;
|
|
} else if (parentState === 26) {
|
|
state = 27;
|
|
left = 0;
|
|
} else if (parentState === 38) {
|
|
state = 39;
|
|
left = 0;
|
|
} else if (parentState === 143) {
|
|
state = 144;
|
|
left = 0;
|
|
} else if (parentState === 128) {
|
|
state = 129;
|
|
} else if (parentState === 19) {
|
|
state = 20;
|
|
} else if (parentState === 121) {
|
|
state = 122;
|
|
left = 0;
|
|
} else if (parentState === 18) {
|
|
state = 19;
|
|
left = 0;
|
|
expect = 0;
|
|
} else if (parentState === 71) {
|
|
state = 72;
|
|
left = 0;
|
|
} else if (parentState === 59) {
|
|
state = 63;
|
|
left = 1;
|
|
} else if (parentState === 9) {
|
|
state = 10;
|
|
left = 0;
|
|
} else {
|
|
error('Unexpected }. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentStates[index] = null;
|
|
pos++;
|
|
}
|
|
|
|
function ternaryOpen() {
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
state = 125;
|
|
outputLine += '?';
|
|
left = 0;
|
|
pos++;
|
|
if (isTernary[index]) {
|
|
isTernary[index]++;
|
|
} else {
|
|
isTernary[index] = 1;
|
|
}
|
|
ternaryCount++;
|
|
}
|
|
|
|
function comma() {
|
|
var parentState;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentState = parentStates[index];
|
|
if (lastState === 48) {
|
|
state = 49;
|
|
} else if (parentState === 1 || lastState === 1) {
|
|
state = 0;
|
|
} else if (lastState === 55) {
|
|
state = 56;
|
|
} else if (parentState === 104) {
|
|
state = 105;
|
|
} else if (isObjectLiteral[index]) {
|
|
state = 100;
|
|
} else if (isVar[index]) {
|
|
state = 138;
|
|
} else if (isTernary[index]) {
|
|
error("Syntax error expected :");
|
|
} else {
|
|
state = 28;
|
|
}
|
|
outputLine += ',';
|
|
pos++;
|
|
left = 0;
|
|
}
|
|
|
|
function period() {
|
|
if (left) {
|
|
state = 66;
|
|
} else {
|
|
error('Unexpected . Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
outputLine += '.';
|
|
pos++;
|
|
left = 0;
|
|
}
|
|
|
|
function colon() {
|
|
var parentState;
|
|
index = parseFloat('' + lookupSquare + lookupCurly + lookupParen);
|
|
parentState = parentStates[index];
|
|
if (isTernary[index]) {
|
|
state = 126;
|
|
isTernary[index]--;
|
|
ternaryCount--;
|
|
} else if (rules[99][lastState]) {
|
|
state = 99;
|
|
isObjectLiteral[index] = 1;
|
|
} else if (isCase[index] || lastState === 16) {
|
|
state = 123;
|
|
if (lastState === 15) {
|
|
error("Syntax error");
|
|
}
|
|
if (lastState !== 16) {
|
|
isCase[index] = 0;
|
|
caseCount--;
|
|
}
|
|
} else if (!parentState) {
|
|
state = 76;
|
|
} else {
|
|
error('Unexpected : Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
outputLine += ':';
|
|
pos++;
|
|
left = 0;
|
|
}
|
|
|
|
function string() {
|
|
var states;
|
|
if (lastState === 96 || lastState === 100) {
|
|
state = 102;
|
|
left = 0;
|
|
} else {
|
|
state = 115;
|
|
left = 1;
|
|
}
|
|
states = {
|
|
escaping : 0,
|
|
complete : 0
|
|
};
|
|
states[chr] = 1;
|
|
outputLine += code.charAt(pos);
|
|
pos++;
|
|
while (pos < len) {
|
|
chr = code.charCodeAt(pos);
|
|
if (chr === 0x27 && !states.escaping && states[0x27]) {
|
|
states.complete = 1;
|
|
} else if (chr === 0x22 && !states.escaping && states[0x22]) {
|
|
states.complete = 1;
|
|
} else if (states.escaping && (chr === 10 || chr === 13 || chr === 8232 || chr == 8233)) {
|
|
pos++;
|
|
states.escaping = 0;
|
|
continue;
|
|
} else if (chr === 0x5c && !states.escaping) {
|
|
states.escaping = 1;
|
|
pos++;
|
|
continue;
|
|
} else if (chr === 0x5c && states.escaping) {
|
|
states.escaping = 0;
|
|
outputLine += '\\';
|
|
} else if ((chr === 10 || chr === 13 || chr === 8232 || chr == 8233) && !states.escaping) {
|
|
error("Unterminated string literal");
|
|
} else if (states.escaping) {
|
|
outputLine += '\\';
|
|
states.escaping = 0;
|
|
}
|
|
if (states.complete && state === 102) {
|
|
outputLine += scoping;
|
|
}
|
|
outputLine += code.charAt(pos);
|
|
pos++;
|
|
if (states.complete) {
|
|
break;
|
|
}
|
|
}
|
|
if (!states.complete) {
|
|
error("Unterminated string literal");
|
|
}
|
|
}
|
|
|
|
function exclamation() {
|
|
cached = -1;
|
|
next = code.charCodeAt(pos + 1);
|
|
next2 = code.charCodeAt(pos + 2);
|
|
if (next !== 0x3d && !left) {
|
|
state = 88;
|
|
outputLine += ' ! ';
|
|
pos++;
|
|
cached = next;
|
|
} else if (next === 0x3d && next2 !== 0x3d) {
|
|
state = 87;
|
|
outputLine += '!=';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else if (next === 0x3d && next2 === 0x3d) {
|
|
state = 117;
|
|
outputLine += '!==';
|
|
pos += 3;
|
|
} else {
|
|
error('Unexpected !. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function tilde() {
|
|
if (!left) {
|
|
state = 11;
|
|
outputLine += '~';
|
|
pos++;
|
|
} else {
|
|
error('Unexpected ~ Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function pipe() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next === 0x7c) {
|
|
state = 81;
|
|
outputLine += '||';
|
|
pos += 2;
|
|
} else if (next === 0x3d) {
|
|
state = 103;
|
|
outputLine += '|=';
|
|
pos += 2;
|
|
} else if (next !== 0x7c && next !== 0x3d) {
|
|
state = 12;
|
|
outputLine += ' | ';
|
|
pos++;
|
|
cached = next;
|
|
} else {
|
|
error('Unexpected | Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function caret() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next === 0x3d) {
|
|
state = 151;
|
|
outputLine += '^=';
|
|
pos += 2;
|
|
} else if (next !== 0x3d) {
|
|
state = 150;
|
|
outputLine += ' ^ ';
|
|
pos++;
|
|
cached = next;
|
|
} else {
|
|
error('Unexpected ^. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function percent() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next === 0x3d) {
|
|
state = 93;
|
|
outputLine += '%=';
|
|
pos += 2;
|
|
} else if (next !== 0x3d) {
|
|
state = 92;
|
|
outputLine += ' % ';
|
|
pos++;
|
|
cached = next;
|
|
} else {
|
|
error('Unexpected % Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function ampersand() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next === 0x26) {
|
|
state = 82;
|
|
outputLine += '&&';
|
|
pos += 2;
|
|
} else if (next === 0x3d) {
|
|
state = 8;
|
|
outputLine += '&=';
|
|
pos += 2;
|
|
} else if (next !== 0x26 && next !== 0x3d) {
|
|
state = 13;
|
|
outputLine += ' & ';
|
|
pos++;
|
|
cached = next;
|
|
} else {
|
|
error('Unexpected & Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function equal() {
|
|
next = code.charCodeAt(pos + 1);
|
|
next2 = code.charCodeAt(pos + 2);
|
|
cached = -1;
|
|
if (next !== 0x3d) {
|
|
state = 30;
|
|
outputLine += ' = ';
|
|
pos++;
|
|
cached = next;
|
|
} else if (next === 0x3d && next2 !== 0x3d) {
|
|
state = 31;
|
|
outputLine += '==';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else if (next === 0x3d && next2 === 0x3d) {
|
|
state = 116;
|
|
outputLine += '===';
|
|
pos += 3;
|
|
} else {
|
|
error('Unexpected = Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function greaterThan() {
|
|
next = code.charCodeAt(pos + 1);
|
|
next2 = code.charCodeAt(pos + 2);
|
|
next3 = code.charCodeAt(pos + 3);
|
|
cached = -1;
|
|
if (next === 0x3e && next2 === 0x3e && next3 === 0x3d) {
|
|
state = 153;
|
|
outputLine += '>>>=';
|
|
pos += 4;
|
|
} else if (next === 0x3e && next2 === 0x3e) {
|
|
state = 152;
|
|
outputLine += '>>>';
|
|
pos += 3;
|
|
cached = next3;
|
|
} else if (next === 0x3e && next2 === 0x3d) {
|
|
state = 114;
|
|
outputLine += '>>=';
|
|
pos += 3;
|
|
cached = next3;
|
|
} else if (next === 0x3e) {
|
|
state = 113;
|
|
outputLine += '>>';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else if (next !== 0x3d) {
|
|
state = 64;
|
|
outputLine += ' > ';
|
|
pos++;
|
|
cached = next;
|
|
} else if (next === 0x3d) {
|
|
state = 65;
|
|
outputLine += '>=';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else {
|
|
error('Unexpected > Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function lessThan() {
|
|
next = code.charCodeAt(pos + 1);
|
|
next2 = code.charCodeAt(pos + 2);
|
|
if (next === 0x21 && next2 === 0x2d) {
|
|
next3 = code.charCodeAt(pos + 3);
|
|
if (next3 === 0x2d) {
|
|
pos += 4;
|
|
return nonStandardComment();
|
|
}
|
|
}
|
|
cached = -1;
|
|
if (next === 0x3c && next2 === 0x3d) {
|
|
state = 80;
|
|
outputLine += '<<=';
|
|
pos += 3;
|
|
} else if (next === 0x3c) {
|
|
state = 79;
|
|
outputLine += '<<';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else if (next !== 0x3d) {
|
|
state = 77;
|
|
outputLine += ' < ';
|
|
pos++;
|
|
cached = next;
|
|
} else if (next === 0x3d) {
|
|
state = 78;
|
|
outputLine += '<=';
|
|
pos += 2;
|
|
cached = next2;
|
|
} else {
|
|
error('Unexpected < Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function asterix() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (next !== 0x3d) {
|
|
state = 94;
|
|
outputLine += ' * ';
|
|
pos++;
|
|
cached = next;
|
|
} else if (next === 0x3d) {
|
|
state = 95;
|
|
outputLine += '*=';
|
|
pos += 2;
|
|
} else {
|
|
error('Unexpected * Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
left = 0;
|
|
}
|
|
|
|
function minus() {
|
|
next = code.charCodeAt(pos + 1);
|
|
cached = -1;
|
|
if (!left) {
|
|
next2 = code.charCodeAt(pos + 2);
|
|
if (next === 0x2d && next2 === 0x3e) {
|
|
pos += 3;
|
|
return nonStandardComment();
|
|
}
|
|
}
|
|
if (next === 0x2d && left) {
|
|
state = 108;
|
|
outputLine += '--';
|
|
pos += 2;
|
|
left = 1;
|
|
} else if (next === 0x2d && !left) {
|
|
state = 109;
|
|
outputLine += '--';
|
|
pos += 2;
|
|
left = 0;
|
|
} else if (next === 0x3d) {
|
|
state = 91;
|
|
outputLine += '-=';
|
|
pos += 2;
|
|
left = 0;
|
|
} else if (next !== 0x3d && next !== 0x2d && left) {
|
|
state = 90;
|
|
outputLine += ' - ';
|
|
pos++;
|
|
cached = next;
|
|
left = 0;
|
|
} else if (next !== 0x3d && next !== 0x2d && !left) {
|
|
state = 134;
|
|
outputLine += '-';
|
|
pos++;
|
|
cached = next;
|
|
left = 0;
|
|
} else {
|
|
error('Unexpected - Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
}
|
|
|
|
function space() {
|
|
pos++;
|
|
}
|
|
|
|
function checkRules() {
|
|
if (state === 89) {
|
|
error("No state defined for char:" + String.fromCharCode(chr) + ', left: ' + left + ', last state: ' + rulesLookup[lastState] + ',output:' + output);
|
|
}
|
|
if (!rules[state]) {
|
|
error("State does not exist in the rules:" + rulesLookup[state]);
|
|
}
|
|
if (!rules[state][lastState] && newLineFlag) {
|
|
asi();
|
|
}
|
|
if (!rules[state][lastState]) {
|
|
error("Unexpected " + rulesLookup[state] + '. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
if (parseTreeFlag) {
|
|
parseTreeOutput = parseTreeOutput + '<' + rulesLookup[state] + '>' + outputLine + '</' + rulesLookup[state] + '>';
|
|
}
|
|
lastState = state;
|
|
newLineFlag = 0;
|
|
if (lookupSquare === 1 && lookupCurly === 1 && lookupParen === 1) {
|
|
parentStates = {};
|
|
}
|
|
}
|
|
|
|
while (pos < len) {
|
|
state = 89;
|
|
if (cached >= 0) {
|
|
chr = cached;
|
|
} else {
|
|
chr = code.charCodeAt(pos);
|
|
}
|
|
cached = -1;
|
|
if (chr === 9 || chr === 11 || chr === 12 || chr === 32) {
|
|
space();
|
|
continue;
|
|
} else if (chr === 10 || chr === 13) {
|
|
newLine();
|
|
continue;
|
|
} else if (chr === 0x3b) {
|
|
semicolon();
|
|
} else if (chr > 0x60 && chr < 0x7b) {
|
|
identifier();
|
|
} else if (chr === 0x24) {
|
|
nonKeyword();
|
|
} else if (chr > 0x2f && chr < 0x3a) {
|
|
numberOrHex();
|
|
} else if (chr === 0x2f) {
|
|
next = code.charCodeAt(pos + 1);
|
|
if (!left && next !== 0x2a && next !== 0x2f && lastState !== 137) {
|
|
regex();
|
|
} else if (next === 0x2f) {
|
|
singleComment();
|
|
continue;
|
|
} else if (next === 0x2a) {
|
|
multiComment();
|
|
continue;
|
|
} else if ((lastState === 137 || left) && next !== 0x2f) {
|
|
divide();
|
|
} else {
|
|
error('Unexpected /. Cannot follow ' + rulesLookup[lastState] + '.Output:' + output);
|
|
}
|
|
} else if (chr === 0x2b) {
|
|
plus();
|
|
} else if (chr === 0x5b) {
|
|
arrayOrAccessorOpen();
|
|
} else if (chr === 0x5d) {
|
|
arrayOrAccessorClose();
|
|
} else if (chr === 0x28) {
|
|
parenOpen();
|
|
} else if (chr === 0x29) {
|
|
parenClose();
|
|
} else if (chr === 0x7b) {
|
|
curlyOpen();
|
|
} else if (chr === 0x7d) {
|
|
curlyClose();
|
|
} else if (chr === 0x3f) {
|
|
ternaryOpen();
|
|
} else if (chr === 0x2c) {
|
|
comma();
|
|
} else if (chr === 0x2e && left) {
|
|
period();
|
|
} else if (chr === 0x3a) {
|
|
colon();
|
|
} else if (chr === 0x27) {
|
|
string();
|
|
} else if (chr === 0x22) {
|
|
string();
|
|
} else if (chr === 0x21) {
|
|
exclamation();
|
|
} else if (chr === 0x7e) {
|
|
tilde();
|
|
} else if (chr === 0x7c) {
|
|
pipe();
|
|
} else if (chr === 0x5e) {
|
|
caret();
|
|
} else if (chr === 0x25) {
|
|
percent();
|
|
} else if (chr === 0x26) {
|
|
ampersand();
|
|
} else if (chr === 0x3d) {
|
|
equal();
|
|
} else if (chr === 0x3e) {
|
|
greaterThan();
|
|
} else if (chr === 0x3c) {
|
|
lessThan();
|
|
} else if (chr === 0x2a) {
|
|
asterix();
|
|
} else if (chr === 0x2d) {
|
|
minus();
|
|
} else if (chr === 0x5f) {
|
|
nonKeyword();
|
|
} else if (chr === 0x5c) {
|
|
unicodeEscape(1);
|
|
} else if (chr > 0x40 && chr < 0x5b) {
|
|
if (chr === 0x49 || chr === 0x4e || chr === 0x49) {
|
|
identifier();
|
|
} else {
|
|
nonKeyword();
|
|
}
|
|
} else if (!left && chr === 0x2e) {
|
|
numberOrHex();
|
|
} else if (chr > 159) {
|
|
if (chr === 160 || chr === 5760 || chr === 6158 || chr === 8192 || chr === 8193 || chr === 8194 || chr === 8195 || chr === 8196 || chr === 8197 || chr === 8198 || chr === 8199 || chr === 8200 || chr === 8201 || chr === 8202 || chr === 8239 || chr === 8287 || chr === 12288) {
|
|
space();
|
|
continue;
|
|
} else if (chr === 8232 || chr == 8233) {
|
|
newLine();
|
|
continue;
|
|
} else {
|
|
nonKeyword();
|
|
}
|
|
}
|
|
if (commentSkip) {
|
|
commentSkip = 0;
|
|
continue;
|
|
}
|
|
checkRules();
|
|
output += outputLine;
|
|
outputLine = '';
|
|
}
|
|
|
|
if (lastState === 70) {
|
|
error("Syntax error");
|
|
}
|
|
|
|
if (lookupSquare > 1) {
|
|
error("Syntax error unmatched [");
|
|
} else if (lookupCurly > 1) {
|
|
error("Syntax error unmatched {");
|
|
} else if (lookupParen > 1) {
|
|
error("Syntax error unmatched (");
|
|
} else if (caseCount > 1) {
|
|
error("Syntax error unmatched case");
|
|
}
|
|
|
|
if (!rules[35][lastState]) {
|
|
error('Unexpected EOF. ' + rulesLookup[lastState] + ' cannot follow EOF.');
|
|
}
|
|
|
|
if (completeFlag) {
|
|
that.complete();
|
|
}
|
|
if (parseTreeFlag) {
|
|
that.parseTree(parseTreeOutput);
|
|
}
|
|
if (convertedFlag) {
|
|
that.converted(output);
|
|
}
|
|
return output;
|
|
};
|
|
|
|
this.options = {
|
|
eval : true
|
|
};
|
|
if ( typeof obj === 'string') {
|
|
return execute(rewrite(obj));
|
|
}
|
|
if (obj.options) {
|
|
this.options = obj.options;
|
|
}
|
|
if (obj.converted) {
|
|
this.converted = obj.converted;
|
|
}
|
|
if (obj.result) {
|
|
this.result = obj.result;
|
|
}
|
|
if (obj.complete) {
|
|
this.complete = obj.complete;
|
|
}
|
|
if (obj.parseTree) {
|
|
this.parseTree = obj.parseTree;
|
|
}
|
|
converted = rewrite(obj.code);
|
|
if (this.options.eval) {
|
|
return execute(converted);
|
|
} else {
|
|
return converted;
|
|
}
|
|
};
|
|
};
|
|
return new Mental;
|
|
};
|
|
})( typeof exports === "undefined" ? (window.mentaljs = {}) : exports);
|