fe710778725b6a3f1bfe379c30c4a6dd8fc4a7d5
[WebKit-https.git] / LayoutTests / js / parser-syntax-check-expected.txt
1 This test checks that the following expressions or statements are valid ECMASCRIPT code or should throw parse error
2
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
4
5
6 Unary operators and member access
7 PASS Valid:   ""
8 PASS Valid:   "function f() {  }"
9 PASS Invalid: "(a". Produced the following syntax error: "SyntaxError: Unexpected end of script"
10 PASS Invalid: "function f() { (a }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression."
11 PASS Invalid: "a[5". Produced the following syntax error: "SyntaxError: Unexpected end of script"
12 PASS Invalid: "function f() { a[5 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ']' to end a subscript expression."
13 PASS Invalid: "a[5 + 6". Produced the following syntax error: "SyntaxError: Unexpected end of script"
14 PASS Invalid: "function f() { a[5 + 6 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ']' to end a subscript expression."
15 PASS Invalid: "a.". Produced the following syntax error: "SyntaxError: Unexpected end of script"
16 PASS Invalid: "function f() { a. }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a property name after '.'."
17 PASS Invalid: "()". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
18 PASS Invalid: "function f() { () }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
19 PASS Invalid: "a.'l'". Produced the following syntax error: "SyntaxError: Unexpected string literal 'l'. Expected a property name after '.'."
20 PASS Invalid: "function f() { a.'l' }". Produced the following syntax error: "SyntaxError: Unexpected string literal 'l'. Expected a property name after '.'."
21 PASS Valid:   "a: +~!new a" with ReferenceError
22 PASS Valid:   "function f() { a: +~!new a }"
23 PASS Invalid: "new -a". Produced the following syntax error: "SyntaxError: Unexpected token '-'"
24 PASS Invalid: "function f() { new -a }". Produced the following syntax error: "SyntaxError: Unexpected token '-'"
25 PASS Valid:   "new (-1)" with TypeError
26 PASS Valid:   "function f() { new (-1) }"
27 PASS Valid:   "a: b: c: new f(x++)++" with ReferenceError
28 PASS Valid:   "function f() { a: b: c: new f(x++)++ }"
29 PASS Valid:   "(a)++" with ReferenceError
30 PASS Valid:   "function f() { (a)++ }"
31 PASS Valid:   "(1--).x" with ReferenceError
32 PASS Valid:   "function f() { (1--).x }"
33 PASS Invalid: "a-- ++". Produced the following syntax error: "SyntaxError: Unexpected token '++'"
34 PASS Invalid: "function f() { a-- ++ }". Produced the following syntax error: "SyntaxError: Unexpected token '++'"
35 PASS Invalid: "(a:) --b". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected ')' to end a compound expression."
36 PASS Invalid: "function f() { (a:) --b }". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected ')' to end a compound expression."
37 PASS Valid:   "++ -- ++ a" with ReferenceError
38 PASS Valid:   "function f() { ++ -- ++ a }"
39 PASS Valid:   "++ new new a ++" with ReferenceError
40 PASS Valid:   "function f() { ++ new new a ++ }"
41 PASS Valid:   "delete void 0"
42 PASS Valid:   "function f() { delete void 0 }"
43 PASS Invalid: "delete the void". Produced the following syntax error: "SyntaxError: Unexpected keyword 'void'. Parse error."
44 PASS Invalid: "function f() { delete the void }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'void'. Parse error."
45 PASS Invalid: "(a++". Produced the following syntax error: "SyntaxError: Unexpected end of script"
46 PASS Invalid: "function f() { (a++ }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression."
47 PASS Valid:   "++a--" with ReferenceError
48 PASS Valid:   "function f() { ++a-- }"
49 PASS Valid:   "++((a))--" with ReferenceError
50 PASS Valid:   "function f() { ++((a))-- }"
51 PASS Valid:   "(a.x++)++" with ReferenceError
52 PASS Valid:   "function f() { (a.x++)++ }"
53 PASS Invalid: "1: null". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Parse error."
54 PASS Invalid: "function f() { 1: null }". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Parse error."
55 PASS Invalid: "+-!~". Produced the following syntax error: "SyntaxError: Unexpected end of script"
56 PASS Invalid: "function f() { +-!~ }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
57 PASS Invalid: "+-!~((". Produced the following syntax error: "SyntaxError: Unexpected end of script"
58 PASS Invalid: "function f() { +-!~(( }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
59 PASS Invalid: "a)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
60 PASS Invalid: "function f() { a) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
61 PASS Invalid: "a]". Produced the following syntax error: "SyntaxError: Unexpected token ']'"
62 PASS Invalid: "function f() { a] }". Produced the following syntax error: "SyntaxError: Unexpected token ']'"
63 PASS Invalid: ".l". Produced the following syntax error: "SyntaxError: Unexpected token '.'"
64 PASS Invalid: "function f() { .l }". Produced the following syntax error: "SyntaxError: Unexpected token '.'"
65 PASS Invalid: "1.l". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
66 PASS Invalid: "function f() { 1.l }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
67 PASS Valid:   "1 .l"
68 PASS Valid:   "function f() { 1 .l }"
69 Octal numbers
70 PASS Valid:   "'use strict'; 0"
71 PASS Valid:   "function f() { 'use strict'; 0 }"
72 PASS Valid:   "0"
73 PASS Valid:   "function f() { 0 }"
74 PASS Invalid: "'use strict'; 00". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
75 PASS Invalid: "function f() { 'use strict'; 00 }". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
76 PASS Valid:   "00"
77 PASS Valid:   "function f() { 00 }"
78 PASS Invalid: "'use strict'; 08". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
79 PASS Invalid: "function f() { 'use strict'; 08 }". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
80 PASS Valid:   "08"
81 PASS Valid:   "function f() { 08 }"
82 PASS Invalid: "'use strict'; 09". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
83 PASS Invalid: "function f() { 'use strict'; 09 }". Produced the following syntax error: "SyntaxError: Decimal integer literals with a leading zero are forbidden in strict mode"
84 PASS Valid:   "09"
85 PASS Valid:   "function f() { 09 }"
86 Binary and conditional operators
87 PASS Valid:   "a + + typeof this" with ReferenceError
88 PASS Valid:   "function f() { a + + typeof this }"
89 PASS Invalid: "a + * b". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
90 PASS Invalid: "function f() { a + * b }". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
91 PASS Invalid: "a ? b". Produced the following syntax error: "SyntaxError: Unexpected end of script"
92 PASS Invalid: "function f() { a ? b }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ':' in ternary operator."
93 PASS Invalid: "a ? b :". Produced the following syntax error: "SyntaxError: Unexpected end of script"
94 PASS Invalid: "function f() { a ? b : }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
95 PASS Invalid: "%a". Produced the following syntax error: "SyntaxError: Unexpected token '%'"
96 PASS Invalid: "function f() { %a }". Produced the following syntax error: "SyntaxError: Unexpected token '%'"
97 PASS Invalid: "a-". Produced the following syntax error: "SyntaxError: Unexpected end of script"
98 PASS Invalid: "function f() { a- }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
99 PASS Valid:   "a = b ? b = c : d = e" with ReferenceError
100 PASS Valid:   "function f() { a = b ? b = c : d = e }"
101 PASS Valid:   "s: a[1].l ? b.l['s'] ? c++ : d : true" with ReferenceError
102 PASS Valid:   "function f() { s: a[1].l ? b.l['s'] ? c++ : d : true }"
103 PASS Valid:   "a ? b + 1 ? c + 3 * d.l : d[5][6] : e" with ReferenceError
104 PASS Valid:   "function f() { a ? b + 1 ? c + 3 * d.l : d[5][6] : e }"
105 PASS Valid:   "a in b instanceof delete -c" with ReferenceError
106 PASS Valid:   "function f() { a in b instanceof delete -c }"
107 PASS Invalid: "a in instanceof b.l". Produced the following syntax error: "SyntaxError: Unexpected keyword 'instanceof'"
108 PASS Invalid: "function f() { a in instanceof b.l }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'instanceof'"
109 PASS Valid:   "- - true % 5"
110 PASS Valid:   "function f() { - - true % 5 }"
111 PASS Invalid: "- false = 3". Produced the following syntax error: "SyntaxError: Left hand side of operator '=' must be a reference."
112 PASS Invalid: "function f() { - false = 3 }". Produced the following syntax error: "SyntaxError: Left hand side of operator '=' must be a reference."
113 PASS Valid:   "a: b: c: (1 + null) = 3" with ReferenceError
114 PASS Valid:   "function f() { a: b: c: (1 + null) = 3 }"
115 PASS Valid:   "a[2] = b.l += c /= 4 * 7 ^ !6" with ReferenceError
116 PASS Valid:   "function f() { a[2] = b.l += c /= 4 * 7 ^ !6 }"
117 PASS Invalid: "a + typeof b += c in d". Produced the following syntax error: "SyntaxError: Left hand side of operator '+=' must be a reference."
118 PASS Invalid: "function f() { a + typeof b += c in d }". Produced the following syntax error: "SyntaxError: Left hand side of operator '+=' must be a reference."
119 PASS Invalid: "typeof a &= typeof b". Produced the following syntax error: "SyntaxError: Left hand side of operator '&=' must be a reference."
120 PASS Invalid: "function f() { typeof a &= typeof b }". Produced the following syntax error: "SyntaxError: Left hand side of operator '&=' must be a reference."
121 PASS Valid:   "a: ((typeof (a))) >>>= a || b.l && c" with ReferenceError
122 PASS Valid:   "function f() { a: ((typeof (a))) >>>= a || b.l && c }"
123 PASS Valid:   "a: b: c[a /= f[a %= b]].l[c[x] = 7] -= a ? b <<= f : g" with ReferenceError
124 PASS Valid:   "function f() { a: b: c[a /= f[a %= b]].l[c[x] = 7] -= a ? b <<= f : g }"
125 PASS Valid:   "-void+x['y'].l == x.l != 5 - f[7]" with ReferenceError
126 PASS Valid:   "function f() { -void+x['y'].l == x.l != 5 - f[7] }"
127 Function calls (and new with arguments)
128 PASS Valid:   "a()()()" with ReferenceError
129 PASS Valid:   "function f() { a()()() }"
130 PASS Valid:   "s: l: a[2](4 == 6, 5 = 6)(f[4], 6)" with ReferenceError
131 PASS Valid:   "function f() { s: l: a[2](4 == 6, 5 = 6)(f[4], 6) }"
132 PASS Valid:   "s: eval(a.apply(), b.call(c[5] - f[7]))" with ReferenceError
133 PASS Valid:   "function f() { s: eval(a.apply(), b.call(c[5] - f[7])) }"
134 PASS Invalid: "a(". Produced the following syntax error: "SyntaxError: Unexpected end of script"
135 PASS Invalid: "function f() { a( }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
136 PASS Invalid: "a(5". Produced the following syntax error: "SyntaxError: Unexpected end of script"
137 PASS Invalid: "function f() { a(5 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end an argument list."
138 PASS Invalid: "a(5,". Produced the following syntax error: "SyntaxError: Unexpected end of script"
139 PASS Invalid: "function f() { a(5, }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
140 PASS Valid:   "a(5,)" with ReferenceError
141 PASS Valid:   "function f() { a(5,) }"
142 PASS Invalid: "a(5,6". Produced the following syntax error: "SyntaxError: Unexpected end of script"
143 PASS Invalid: "function f() { a(5,6 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end an argument list."
144 PASS Valid:   "a(b[7], c <d> e.l, new a() > b)" with ReferenceError
145 PASS Valid:   "function f() { a(b[7], c <d> e.l, new a() > b) }"
146 PASS Invalid: "a(b[5)". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected ']' to end a subscript expression."
147 PASS Invalid: "function f() { a(b[5) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected ']' to end a subscript expression."
148 PASS Invalid: "a(b.)". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected a property name after '.'."
149 PASS Invalid: "function f() { a(b.) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected a property name after '.'."
150 PASS Valid:   "~new new a(1)(i++)(c[l])" with ReferenceError
151 PASS Valid:   "function f() { ~new new a(1)(i++)(c[l]) }"
152 PASS Invalid: "a(*a)". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
153 PASS Invalid: "function f() { a(*a) }". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
154 PASS Valid:   "((((a))((b)()).l))()" with ReferenceError
155 PASS Valid:   "function f() { ((((a))((b)()).l))() }"
156 PASS Valid:   "(a)[b + (c) / (d())].l--" with ReferenceError
157 PASS Valid:   "function f() { (a)[b + (c) / (d())].l-- }"
158 PASS Valid:   "new (5)" with TypeError
159 PASS Valid:   "function f() { new (5) }"
160 PASS Invalid: "new a(5". Produced the following syntax error: "SyntaxError: Unexpected end of script"
161 PASS Invalid: "function f() { new a(5 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end an argument list."
162 PASS Valid:   "new (f + 5)(6, (g)() - 'l'() - true(false))" with ReferenceError
163 PASS Valid:   "function f() { new (f + 5)(6, (g)() - 'l'() - true(false)) }"
164 PASS Invalid: "a(.length)". Produced the following syntax error: "SyntaxError: Unexpected token '.'"
165 PASS Invalid: "function f() { a(.length) }". Produced the following syntax error: "SyntaxError: Unexpected token '.'"
166 function declaration and expression
167 PASS Valid:   "function f() {}"
168 PASS Valid:   "function f() { function f() {} }"
169 PASS Valid:   "function f(a,b) {}"
170 PASS Valid:   "function f() { function f(a,b) {} }"
171 PASS Invalid: "function () {}". Produced the following syntax error: "SyntaxError: Function statements must have a name."
172 PASS Invalid: "function f() { function () {} }". Produced the following syntax error: "SyntaxError: Function statements must have a name."
173 PASS Invalid: "function f(a b) {}". Produced the following syntax error: "SyntaxError: Unexpected identifier 'b'. Expected a ')' or a ',' after a parameter declaration."
174 PASS Invalid: "function f() { function f(a b) {} }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'b'. Expected a ')' or a ',' after a parameter declaration."
175 PASS Valid:   "function f(a,) {}"
176 PASS Valid:   "function f() { function f(a,) {} }"
177 PASS Invalid: "function f(a,". Produced the following syntax error: "SyntaxError: Unexpected end of script"
178 PASS Invalid: "function f() { function f(a, }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a parameter pattern or a ')' in parameter list."
179 PASS Invalid: "function f(a, 1) {}". Produced the following syntax error: "SyntaxError: Unexpected number '1'. Expected a parameter pattern or a ')' in parameter list."
180 PASS Invalid: "function f() { function f(a, 1) {} }". Produced the following syntax error: "SyntaxError: Unexpected number '1'. Expected a parameter pattern or a ')' in parameter list."
181 PASS Valid:   "function g(arguments, eval) {}"
182 PASS Valid:   "function f() { function g(arguments, eval) {} }"
183 PASS Valid:   "function f() {} + function g() {}"
184 PASS Valid:   "function f() { function f() {} + function g() {} }"
185 PASS Invalid: "(function a{})". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list."
186 PASS Invalid: "function f() { (function a{}) }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list."
187 PASS Invalid: "(function this(){})". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'this' as a function name."
188 PASS Invalid: "function f() { (function this(){}) }". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'this' as a function name."
189 PASS Valid:   "(delete new function f(){} + function(a,b){}(5)(6))" with TypeError
190 PASS Valid:   "function f() { (delete new function f(){} + function(a,b){}(5)(6)) }"
191 PASS Valid:   "6 - function (m) { function g() {} }"
192 PASS Valid:   "function f() { 6 - function (m) { function g() {} } }"
193 PASS Invalid: "function l() {". Produced the following syntax error: "SyntaxError: Unexpected end of script"
194 PASS Invalid: "function f() { function l() { }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
195 PASS Invalid: "function l++(){}". Produced the following syntax error: "SyntaxError: Unexpected token '++'. Expected an opening '(' before a function's parameter list."
196 PASS Invalid: "function f() { function l++(){} }". Produced the following syntax error: "SyntaxError: Unexpected token '++'. Expected an opening '(' before a function's parameter list."
197 Array and object literal, comma operator
198 PASS Valid:   "[] in [5,6] * [,5,] / [,,5,,] || [a,] && new [,b] % [,,]" with TypeError
199 PASS Valid:   "function f() { [] in [5,6] * [,5,] / [,,5,,] || [a,] && new [,b] % [,,] }"
200 PASS Invalid: "[5,". Produced the following syntax error: "SyntaxError: Unexpected end of script"
201 PASS Invalid: "function f() { [5, }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
202 PASS Invalid: "[,". Produced the following syntax error: "SyntaxError: Unexpected end of script"
203 PASS Invalid: "function f() { [, }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
204 PASS Invalid: "(a,)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
205 PASS Invalid: "function f() { (a,) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
206 PASS Valid:   "1 + {get get(){}, set set(a){}, get1:4, set1:get-set, }" with ReferenceError
207 PASS Valid:   "function f() { 1 + {get get(){}, set set(a){}, get1:4, set1:get-set, } }"
208 PASS Invalid: "1 + {a". Produced the following syntax error: "SyntaxError: Unexpected end of script"
209 PASS Invalid: "function f() { 1 + {a }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
210 PASS Invalid: "1 + {a:". Produced the following syntax error: "SyntaxError: Unexpected end of script"
211 PASS Invalid: "function f() { 1 + {a: }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
212 PASS Invalid: "1 + {get l(". Produced the following syntax error: "SyntaxError: Unexpected end of script"
213 PASS Invalid: "function f() { 1 + {get l( }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. getter functions must have no parameters."
214 PASS Invalid: ",a". Produced the following syntax error: "SyntaxError: Unexpected token ','"
215 PASS Invalid: "function f() { ,a }". Produced the following syntax error: "SyntaxError: Unexpected token ','"
216 PASS Valid:   "(4,(5,a(3,4))),f[4,a-6]" with ReferenceError
217 PASS Valid:   "function f() { (4,(5,a(3,4))),f[4,a-6] }"
218 PASS Invalid: "(,f)". Produced the following syntax error: "SyntaxError: Unexpected token ','"
219 PASS Invalid: "function f() { (,f) }". Produced the following syntax error: "SyntaxError: Unexpected token ','"
220 PASS Invalid: "a,,b". Produced the following syntax error: "SyntaxError: Unexpected token ','"
221 PASS Invalid: "function f() { a,,b }". Produced the following syntax error: "SyntaxError: Unexpected token ','"
222 PASS Invalid: "a ? b, c : d". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected ':' in ternary operator."
223 PASS Invalid: "function f() { a ? b, c : d }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected ':' in ternary operator."
224 simple statements
225 PASS Valid:   "{ }"
226 PASS Valid:   "function f() { { } }"
227 PASS Invalid: "{ { }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
228 PASS Invalid: "function f() { { { } }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
229 PASS Valid:   "{ ; ; ; }"
230 PASS Valid:   "function f() { { ; ; ; } }"
231 PASS Valid:   "a: { ; }"
232 PASS Valid:   "function f() { a: { ; } }"
233 PASS Invalid: "{ a: }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Cannot parse statement."
234 PASS Invalid: "function f() { { a: } }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Cannot parse statement."
235 PASS Valid:   "{} f; { 6 + f() }" with ReferenceError
236 PASS Valid:   "function f() { {} f; { 6 + f() } }"
237 PASS Valid:   "{ a[5],6; {} ++b-new (-5)() } c().l++" with ReferenceError
238 PASS Valid:   "function f() { { a[5],6; {} ++b-new (-5)() } c().l++ }"
239 PASS Valid:   "{ l1: l2: l3: { this } a = 32 ; { i++ ; { { { } } ++i } } }" with ReferenceError
240 PASS Valid:   "function f() { { l1: l2: l3: { this } a = 32 ; { i++ ; { { { } } ++i } } } }"
241 PASS Valid:   "if (a) ;"
242 PASS Valid:   "function f() { if (a) ; }"
243 PASS Invalid: "{ if (a) }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a statement as the body of an if block."
244 PASS Invalid: "function f() { { if (a) } }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a statement as the body of an if block."
245 PASS Invalid: "if a {}". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start an 'if' condition."
246 PASS Invalid: "function f() { if a {} }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start an 'if' condition."
247 PASS Invalid: "if (a". Produced the following syntax error: "SyntaxError: Unexpected end of script"
248 PASS Invalid: "function f() { if (a }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end an 'if' condition."
249 PASS Invalid: "if (a { }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ')' to end an 'if' condition."
250 PASS Invalid: "function f() { if (a { } }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ')' to end an 'if' condition."
251 PASS Valid:   "x: s: if (a) ; else b"
252 PASS Valid:   "function f() { x: s: if (a) ; else b }"
253 PASS Invalid: "else {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
254 PASS Invalid: "function f() { else {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
255 PASS Valid:   "if (a) if (b) y; else {} else ;" with ReferenceError
256 PASS Valid:   "function f() { if (a) if (b) y; else {} else ; }"
257 PASS Invalid: "if (a) {} else x; else". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
258 PASS Invalid: "function f() { if (a) {} else x; else }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
259 PASS Invalid: "if (a) { else }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
260 PASS Invalid: "function f() { if (a) { else } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
261 PASS Valid:   "if (a.l + new b()) 4 + 5 - f()" with ReferenceError
262 PASS Valid:   "function f() { if (a.l + new b()) 4 + 5 - f() }"
263 PASS Valid:   "if (a) with (x) ; else with (y) ;" with ReferenceError
264 PASS Valid:   "function f() { if (a) with (x) ; else with (y) ; }"
265 PASS Invalid: "with a.b { }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a subject of a 'with' statement."
266 PASS Invalid: "function f() { with a.b { } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a subject of a 'with' statement."
267 PASS Valid:   "while (a() - new b) ;" with TypeError
268 PASS Valid:   "function f() { while (a() - new b) ; }"
269 PASS Invalid: "while a {}". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a while loop condition."
270 PASS Invalid: "function f() { while a {} }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a while loop condition."
271 PASS Valid:   "do ; while(0) i++" with ReferenceError
272 PASS Valid:   "function f() { do ; while(0) i++ }"
273 PASS Valid:   "do if (a) x; else y; while(z)" with ReferenceError
274 PASS Valid:   "function f() { do if (a) x; else y; while(z) }"
275 PASS Invalid: "do g; while 4". Produced the following syntax error: "SyntaxError: Unexpected number '4'. Expected '(' to start a do-while loop condition."
276 PASS Invalid: "function f() { do g; while 4 }". Produced the following syntax error: "SyntaxError: Unexpected number '4'. Expected '(' to start a do-while loop condition."
277 PASS Invalid: "do g; while ((4)". Produced the following syntax error: "SyntaxError: Unexpected end of script"
278 PASS Invalid: "function f() { do g; while ((4) }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end a do-while loop condition."
279 PASS Valid:   "{ { do do do ; while(0) while(0) while(0) } }"
280 PASS Valid:   "function f() { { { do do do ; while(0) while(0) while(0) } } }"
281 PASS Valid:   "do while (0) if (a) {} else y; while(0)"
282 PASS Valid:   "function f() { do while (0) if (a) {} else y; while(0) }"
283 PASS Valid:   "if (a) while (b) if (c) with(d) {} else e; else f" with ReferenceError
284 PASS Valid:   "function f() { if (a) while (b) if (c) with(d) {} else e; else f }"
285 PASS Invalid: "break ; break your_limits ; continue ; continue living ; debugger". Produced the following syntax error: "SyntaxError: 'break' is only valid inside a switch or loop statement."
286 PASS Invalid: "function f() { break ; break your_limits ; continue ; continue living ; debugger }". Produced the following syntax error: "SyntaxError: 'break' is only valid inside a switch or loop statement."
287 PASS Invalid: "debugger X". Produced the following syntax error: "SyntaxError: Unexpected identifier 'X'. Debugger keyword must be followed by a ';'."
288 PASS Invalid: "function f() { debugger X }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'X'. Debugger keyword must be followed by a ';'."
289 PASS Invalid: "break 0.2". Produced the following syntax error: "SyntaxError: Unexpected number '0.2'. Expected an identifier as the target for a break statement."
290 PASS Invalid: "function f() { break 0.2 }". Produced the following syntax error: "SyntaxError: Unexpected number '0.2'. Expected an identifier as the target for a break statement."
291 PASS Invalid: "continue a++". Produced the following syntax error: "SyntaxError: Cannot use the undeclared label 'a'."
292 PASS Invalid: "function f() { continue a++ }". Produced the following syntax error: "SyntaxError: Cannot use the undeclared label 'a'."
293 PASS Invalid: "continue (my_friend)". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected an identifier as the target for a continue statement."
294 PASS Invalid: "function f() { continue (my_friend) }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected an identifier as the target for a continue statement."
295 PASS Valid:   "while (1) break"
296 PASS Valid:   "function f() { while (1) break }"
297 PASS Valid:   "do if (a) with (b) continue; else debugger; while (false)" with ReferenceError
298 PASS Valid:   "function f() { do if (a) with (b) continue; else debugger; while (false) }"
299 PASS Invalid: "do if (a) while (false) else debugger". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
300 PASS Invalid: "function f() { do if (a) while (false) else debugger }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
301 PASS Invalid: "while if (a) ;". Produced the following syntax error: "SyntaxError: Unexpected keyword 'if'. Expected '(' to start a while loop condition."
302 PASS Invalid: "function f() { while if (a) ; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'if'. Expected '(' to start a while loop condition."
303 PASS Valid:   "if (a) function f() {} else function g() {}"
304 PASS Valid:   "function f() { if (a) function f() {} else function g() {} }"
305 PASS Invalid: "if (a()) while(0) function f() {} else function g() {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
306 PASS Invalid: "function f() { if (a()) while(0) function f() {} else function g() {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
307 PASS Invalid: "if (a()) function f() { else function g() }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
308 PASS Invalid: "function f() { if (a()) function f() { else function g() } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'"
309 PASS Invalid: "if (a) if (b) ; else function f {}". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list."
310 PASS Invalid: "function f() { if (a) if (b) ; else function f {} }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected an opening '(' before a function's parameter list."
311 PASS Invalid: "if (a) if (b) ; else function (){}". Produced the following syntax error: "SyntaxError: Function statements must have a name."
312 PASS Invalid: "function f() { if (a) if (b) ; else function (){} }". Produced the following syntax error: "SyntaxError: Function statements must have a name."
313 PASS Valid:   "throw a" with 32
314 PASS Valid:   "function f() { throw a }"
315 PASS Valid:   "throw a + b in void c" with ReferenceError
316 PASS Valid:   "function f() { throw a + b in void c }"
317 PASS Invalid: "throw". Produced the following syntax error: "SyntaxError: Cannot have a newline after 'throw'."
318 PASS Invalid: "function f() { throw }". Produced the following syntax error: "SyntaxError: Cannot have a newline after 'throw'."
319 var and const statements
320 PASS Valid:   "var a, b = null"
321 PASS Valid:   "function f() { var a, b = null }"
322 PASS Valid:   "const a = 5, b = 10, c = 20"
323 PASS Valid:   "function f() { const a = 5, b = 10, c = 20 }"
324 PASS Invalid: "var". Produced the following syntax error: "SyntaxError: Unexpected end of script"
325 PASS Invalid: "function f() { var }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a parameter pattern or a ')' in parameter list."
326 PASS Invalid: "var = 7". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a parameter pattern or a ')' in parameter list."
327 PASS Invalid: "function f() { var = 7 }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a parameter pattern or a ')' in parameter list."
328 PASS Invalid: "var c (6)". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected ';' after variable declaration."
329 PASS Invalid: "function f() { var c (6) }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected ';' after variable declaration."
330 PASS Valid:   "if (a) var a,b; else { const b = 1, c = 2; }"
331 PASS Valid:   "function f() { if (a) var a,b; else { const b = 1, c = 2; } }"
332 PASS Invalid: "if (a) var a,b; else { const b, c }". Produced the following syntax error: "SyntaxError: Unexpected token ','. const declared variable 'b' must have an initializer."
333 PASS Invalid: "function f() { if (a) var a,b; else { const b, c } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. const declared variable 'b' must have an initializer."
334 PASS Invalid: "var 5 = 6". Produced the following syntax error: "SyntaxError: Unexpected number '5'. Expected a parameter pattern or a ')' in parameter list."
335 PASS Invalid: "function f() { var 5 = 6 }". Produced the following syntax error: "SyntaxError: Unexpected number '5'. Expected a parameter pattern or a ')' in parameter list."
336 PASS Valid:   "while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h"
337 PASS Valid:   "function f() { while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h }"
338 PASS Invalid: "var a = if (b) { c }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'if'"
339 PASS Invalid: "function f() { var a = if (b) { c } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'if'"
340 PASS Invalid: "var a = var b". Produced the following syntax error: "SyntaxError: Unexpected keyword 'var'"
341 PASS Invalid: "function f() { var a = var b }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'var'"
342 PASS Invalid: "const a = b += c, a, a, a = (b - f())". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'a'."
343 PASS Invalid: "function f() { const a = b += c, a, a, a = (b - f()) }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'a'."
344 PASS Invalid: "var a %= b | 5". Produced the following syntax error: "SyntaxError: Unexpected token '%='. Expected ';' after variable declaration."
345 PASS Invalid: "function f() { var a %= b | 5 }". Produced the following syntax error: "SyntaxError: Unexpected token '%='. Expected ';' after variable declaration."
346 PASS Invalid: "var (a) = 5". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
347 PASS Invalid: "function f() { var (a) = 5 }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
348 PASS Invalid: "var a = (4, b = 6". Produced the following syntax error: "SyntaxError: Unexpected end of script"
349 PASS Invalid: "function f() { var a = (4, b = 6 }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected ')' to end a compound expression."
350 PASS Invalid: "const 'l' = 3". Produced the following syntax error: "SyntaxError: Unexpected string literal 'l'. Expected a parameter pattern or a ')' in parameter list."
351 PASS Invalid: "function f() { const 'l' = 3 }". Produced the following syntax error: "SyntaxError: Unexpected string literal 'l'. Expected a parameter pattern or a ')' in parameter list."
352 PASS Invalid: "var var = 3". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'var' as a variable name."
353 PASS Invalid: "function f() { var var = 3 }". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'var' as a variable name."
354 PASS Valid:   "var varr = 3 in 1" with TypeError
355 PASS Valid:   "function f() { var varr = 3 in 1 }"
356 PASS Valid:   "const  a = void 7 - typeof 8, b = 8"
357 PASS Valid:   "function f() { const  a = void 7 - typeof 8, b = 8 }"
358 PASS Invalid: "const a, a, a = void 7 - typeof 8, a = 8". Produced the following syntax error: "SyntaxError: Unexpected token ','. const declared variable 'a' must have an initializer."
359 PASS Invalid: "function f() { const a, a, a = void 7 - typeof 8, a = 8 }". Produced the following syntax error: "SyntaxError: Unexpected token ','. const declared variable 'a' must have an initializer."
360 PASS Valid:   "const x_x = 6 /= 7 ? e : f" with ReferenceError
361 PASS Valid:   "function f() { const x_x = 6 /= 7 ? e : f }"
362 PASS Invalid: "var a = ?". Produced the following syntax error: "SyntaxError: Unexpected token '?'"
363 PASS Invalid: "function f() { var a = ? }". Produced the following syntax error: "SyntaxError: Unexpected token '?'"
364 PASS Invalid: "const a = *7". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
365 PASS Invalid: "function f() { const a = *7 }". Produced the following syntax error: "SyntaxError: Unexpected token '*'"
366 PASS Invalid: "var a = :)". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
367 PASS Invalid: "function f() { var a = :) }". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
368 PASS Valid:   "var a = a in b in c instanceof d" with ReferenceError
369 PASS Valid:   "function f() { var a = a in b in c instanceof d }"
370 PASS Invalid: "var a = b ? c, b". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected ':' in ternary operator."
371 PASS Invalid: "function f() { var a = b ? c, b }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected ':' in ternary operator."
372 PASS Invalid: "const a = b : c". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected ';' after variable declaration."
373 PASS Invalid: "function f() { const a = b : c }". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected ';' after variable declaration."
374 PASS Valid:   "const a = 7; eval(''); a++" with TypeError
375 PASS Valid:   "function f() { const a = 7; eval(''); a++ }"
376 PASS Valid:   "const a = 7; eval(''); a--" with TypeError
377 PASS Valid:   "function f() { const a = 7; eval(''); a-- }"
378 PASS Valid:   "const a = 7; with({}) a++" with TypeError
379 PASS Valid:   "function f() { const a = 7; with({}) a++ }"
380 PASS Valid:   "const a = 7; with({}) a--" with TypeError
381 PASS Valid:   "function f() { const a = 7; with({}) a-- }"
382 PASS Valid:   "const a = 7; eval(''); a+=1" with TypeError
383 PASS Valid:   "function f() { const a = 7; eval(''); a+=1 }"
384 PASS Valid:   "const a = 7; eval(''); a-=1" with TypeError
385 PASS Valid:   "function f() { const a = 7; eval(''); a-=1 }"
386 PASS Valid:   "const a = 7; with({}) a+=1" with TypeError
387 PASS Valid:   "function f() { const a = 7; with({}) a+=1 }"
388 PASS Valid:   "const a = 7; with({}) a-=1" with TypeError
389 PASS Valid:   "function f() { const a = 7; with({}) a-=1 }"
390 PASS Valid:   "const a = 7; eval(''); a=1" with TypeError
391 PASS Valid:   "function f() { const a = 7; eval(''); a=1 }"
392 PASS Valid:   "const a = 7; eval(''); a=1" with TypeError
393 PASS Valid:   "function f() { const a = 7; eval(''); a=1 }"
394 PASS Valid:   "const a = 7; with({}) a=1" with TypeError
395 PASS Valid:   "function f() { const a = 7; with({}) a=1 }"
396 PASS Valid:   "const a = 7; with({}) a=1" with TypeError
397 PASS Valid:   "function f() { const a = 7; with({}) a=1 }"
398 for statement
399 PASS Valid:   "for ( ; ; ) { break }"
400 PASS Valid:   "function f() { for ( ; ; ) { break } }"
401 PASS Valid:   "for ( a ; ; ) { break }"
402 PASS Valid:   "function f() { for ( a ; ; ) { break } }"
403 PASS Valid:   "for ( ; a ; ) { break }"
404 PASS Valid:   "function f() { for ( ; a ; ) { break } }"
405 PASS Valid:   "for ( ; ; a ) { break }"
406 PASS Valid:   "function f() { for ( ; ; a ) { break } }"
407 PASS Valid:   "for ( a ; a ; ) break"
408 PASS Valid:   "function f() { for ( a ; a ; ) break }"
409 PASS Valid:   "for ( a ; ; a ) break"
410 PASS Valid:   "function f() { for ( a ; ; a ) break }"
411 PASS Valid:   "for ( ; a ; a ) break"
412 PASS Valid:   "function f() { for ( ; a ; a ) break }"
413 PASS Invalid: "for () { }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
414 PASS Invalid: "function f() { for () { } }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
415 PASS Invalid: "for ( a ) { }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected either 'in' or 'of' in enumeration syntax."
416 PASS Invalid: "function f() { for ( a ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected either 'in' or 'of' in enumeration syntax."
417 PASS Invalid: "for ( ; ) ;". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
418 PASS Invalid: "function f() { for ( ; ) ; }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
419 PASS Invalid: "for a ; b ; c { }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a for-loop header."
420 PASS Invalid: "function f() { for a ; b ; c { } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected '(' to start a for-loop header."
421 PASS Invalid: "for (a ; { }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
422 PASS Invalid: "function f() { for (a ; { } }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected a ';' after the for loop condition expression."
423 PASS Invalid: "for ( a ; ) ;". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
424 PASS Invalid: "function f() { for ( a ; ) ; }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
425 PASS Invalid: "for ( ; a ) break". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression."
426 PASS Invalid: "function f() { for ( ; a ) break }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. Expected a ';' after the for loop condition expression."
427 PASS Valid:   "for (var a, b ; ; ) { break } "
428 PASS Valid:   "function f() { for (var a, b ; ; ) { break }  }"
429 PASS Valid:   "for (var a = b, b = a ; ; ) break"
430 PASS Valid:   "function f() { for (var a = b, b = a ; ; ) break }"
431 PASS Valid:   "for (var a = b, c, d, b = a ; x in b ; ) { break }" with ReferenceError
432 PASS Valid:   "function f() { for (var a = b, c, d, b = a ; x in b ; ) { break } }"
433 PASS Valid:   "for (var a = b, c, d ; ; 1 in a()) break" with ReferenceError
434 PASS Valid:   "function f() { for (var a = b, c, d ; ; 1 in a()) break }"
435 PASS Invalid: "for ( ; var a ; ) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'var'"
436 PASS Invalid: "function f() { for ( ; var a ; ) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'var'"
437 PASS Invalid: "for (const x; ; ) break". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const variables in for loops must have initializers."
438 PASS Invalid: "function f() { for (const x; ; ) break }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const variables in for loops must have initializers."
439 PASS Invalid: "for (const x = 20, y; ; ) break". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const variables in for loops must have initializers."
440 PASS Invalid: "function f() { for (const x = 20, y; ; ) break }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const variables in for loops must have initializers."
441 PASS Valid:   "for (const x = 20; ; ) break"
442 PASS Valid:   "function f() { for (const x = 20; ; ) break }"
443 PASS Valid:   "for (const x of []) break"
444 PASS Valid:   "function f() { for (const x of []) break }"
445 PASS Valid:   "for (const x in {}) break"
446 PASS Valid:   "function f() { for (const x in {}) break }"
447 PASS Invalid: "for (const x = 20, x = 30; ; ) { const x = 20; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'x'."
448 PASS Invalid: "function f() { for (const x = 20, x = 30; ; ) { const x = 20; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'x'."
449 PASS Valid:   "for (const x = 20; ; ) { const x = 20; break; }"
450 PASS Valid:   "function f() { for (const x = 20; ; ) { const x = 20; break; } }"
451 PASS Valid:   "for (const x of []) { const x = 20; break; }"
452 PASS Valid:   "function f() { for (const x of []) { const x = 20; break; } }"
453 PASS Valid:   "for (const x in {}) { const x = 20; break; }"
454 PASS Valid:   "function f() { for (const x in {}) { const x = 20; break; } }"
455 PASS Invalid: "for (const let = 10; ; ) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
456 PASS Invalid: "function f() { for (const let = 10; ; ) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
457 PASS Invalid: "for (const let in {}) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
458 PASS Invalid: "function f() { for (const let in {}) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
459 PASS Invalid: "for (const let of []) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
460 PASS Invalid: "function f() { for (const let of []) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
461 PASS Invalid: "for (let let = 10; ; ) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
462 PASS Invalid: "function f() { for (let let = 10; ; ) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
463 PASS Invalid: "for (let let in {}) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
464 PASS Invalid: "function f() { for (let let in {}) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
465 PASS Invalid: "for (let let of []) { break; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
466 PASS Invalid: "function f() { for (let let of []) { break; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'let'. Cannot use 'let' as an identifier name for a LexicalDeclaration."
467 PASS Invalid: "for ( %a ; ; ) { }". Produced the following syntax error: "SyntaxError: Unexpected token '%'"
468 PASS Invalid: "function f() { for ( %a ; ; ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '%'"
469 PASS Valid:   "for (a in b) break" with ReferenceError
470 PASS Valid:   "function f() { for (a in b) break }"
471 PASS Valid:   "for (a() in b) break" with ReferenceError
472 PASS Valid:   "function f() { for (a() in b) break }"
473 PASS Valid:   "for (a().l[4] in b) break" with ReferenceError
474 PASS Valid:   "function f() { for (a().l[4] in b) break }"
475 PASS Valid:   "for (new a in b in c in d) break" with ReferenceError
476 PASS Valid:   "function f() { for (new a in b in c in d) break }"
477 PASS Valid:   "for (new new new a in b) break" with ReferenceError
478 PASS Valid:   "function f() { for (new new new a in b) break }"
479 PASS Invalid: "for (delete new a() in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
480 PASS Invalid: "function f() { for (delete new a() in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
481 PASS Invalid: "for (a * a in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
482 PASS Invalid: "function f() { for (a * a in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
483 PASS Valid:   "for ((a * a) in b) break" with ReferenceError
484 PASS Valid:   "function f() { for ((a * a) in b) break }"
485 PASS Invalid: "for (a++ in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
486 PASS Invalid: "function f() { for (a++ in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
487 PASS Valid:   "for ((a++) in b) break" with ReferenceError
488 PASS Valid:   "function f() { for ((a++) in b) break }"
489 PASS Invalid: "for (++a in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
490 PASS Invalid: "function f() { for (++a in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
491 PASS Valid:   "for ((++a) in b) break" with ReferenceError
492 PASS Valid:   "function f() { for ((++a) in b) break }"
493 PASS Invalid: "for (a, b in c) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
494 PASS Invalid: "function f() { for (a, b in c) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
495 PASS Invalid: "for (a,b in c ;;) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
496 PASS Invalid: "function f() { for (a,b in c ;;) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
497 PASS Valid:   "for (a,(b in c) ;;) break" with ReferenceError
498 PASS Valid:   "function f() { for (a,(b in c) ;;) break }"
499 PASS Valid:   "for ((a, b) in c) break" with ReferenceError
500 PASS Valid:   "function f() { for ((a, b) in c) break }"
501 PASS Invalid: "for (a ? b : c in c) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
502 PASS Invalid: "function f() { for (a ? b : c in c) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. Expected a reference on the left hand side of an enumeration statement."
503 PASS Valid:   "for ((a ? b : c) in c) break" with ReferenceError
504 PASS Valid:   "function f() { for ((a ? b : c) in c) break }"
505 PASS Valid:   "for (var a in b in c) break" with ReferenceError
506 PASS Valid:   "function f() { for (var a in b in c) break }"
507 PASS Valid:   "for (var a = 5 += 6 in b) break" with ReferenceError
508 PASS Valid:   "function f() { for (var a = 5 += 6 in b) break }"
509 PASS Valid:   "for (var a = foo('should be hit') in b) break" with ReferenceError
510 PASS Valid:   "function f() { for (var a = foo('should be hit') in b) break }"
511 PASS Invalid: "for (var a += 5 in b) break". Produced the following syntax error: "SyntaxError: Unexpected token '+='. Expected either 'in' or 'of' in enumeration syntax."
512 PASS Invalid: "function f() { for (var a += 5 in b) break }". Produced the following syntax error: "SyntaxError: Unexpected token '+='. Expected either 'in' or 'of' in enumeration syntax."
513 PASS Invalid: "for (var a = in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'"
514 PASS Invalid: "function f() { for (var a = in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'"
515 PASS Invalid: "for (var a, b in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
516 PASS Invalid: "function f() { for (var a, b in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
517 PASS Invalid: "for (var a = -6, b in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
518 PASS Invalid: "function f() { for (var a = -6, b in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
519 PASS Invalid: "for (var a, b = 8 in b) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
520 PASS Invalid: "function f() { for (var a, b = 8 in b) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'. can only declare a single variable in an enumeration."
521 PASS Valid:   "for (var a = (b in c) in d) break" with ReferenceError
522 PASS Valid:   "function f() { for (var a = (b in c) in d) break }"
523 PASS Invalid: "for (var a = (b in c in d) break". Produced the following syntax error: "SyntaxError: Unexpected keyword 'break'. Expected either 'in' or 'of' in enumeration syntax."
524 PASS Invalid: "function f() { for (var a = (b in c in d) break }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'break'. Expected either 'in' or 'of' in enumeration syntax."
525 PASS Invalid: "for (var (a) in b) { }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
526 PASS Invalid: "function f() { for (var (a) in b) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
527 PASS Valid:   "for (var a = 7, b = c < d >= d ; f()[6]++ ; --i()[1]++ ) {}" with ReferenceError
528 PASS Valid:   "function f() { for (var a = 7, b = c < d >= d ; f()[6]++ ; --i()[1]++ ) {} }"
529 PASS Invalid: "for (var {a} = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
530 PASS Invalid: "function f() { for (var {a} = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
531 PASS Invalid: "for (var {a} = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
532 PASS Invalid: "function f() { for (var {a} = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
533 PASS Invalid: "for (var {a} = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
534 PASS Invalid: "function f() { for (var {a} = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
535 PASS Valid:   "for (var i = 20 in b) { }" with ReferenceError
536 PASS Valid:   "function f() { for (var i = 20 in b) { } }"
537 PASS Invalid: "for (var i = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
538 PASS Invalid: "function f() { for (var i = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
539 PASS Invalid: "for (var {i} = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
540 PASS Invalid: "function f() { for (var {i} = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
541 PASS Invalid: "for (var [i] = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
542 PASS Invalid: "function f() { for (var [i] = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
543 PASS Invalid: "for (let [i] = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
544 PASS Invalid: "function f() { for (let [i] = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
545 PASS Invalid: "for (const [i] = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
546 PASS Invalid: "function f() { for (const [i] = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
547 PASS Invalid: "for (const i = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
548 PASS Invalid: "function f() { for (const i = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
549 PASS Invalid: "for (let i = 20 of b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
550 PASS Invalid: "function f() { for (let i = 20 of b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
551 PASS Invalid: "for (let i = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
552 PASS Invalid: "function f() { for (let i = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
553 PASS Invalid: "for (const i = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
554 PASS Invalid: "function f() { for (const i = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
555 PASS Invalid: "for (const {i} = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
556 PASS Invalid: "function f() { for (const {i} = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
557 PASS Invalid: "for (let {i} = 20 in b) { }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
558 PASS Invalid: "function f() { for (let {i} = 20 in b) { } }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-in loop header."
559 try statement
560 PASS Invalid: "try { break } catch(e) {}". Produced the following syntax error: "SyntaxError: 'break' is only valid inside a switch or loop statement."
561 PASS Invalid: "function f() { try { break } catch(e) {} }". Produced the following syntax error: "SyntaxError: 'break' is only valid inside a switch or loop statement."
562 PASS Valid:   "try {} finally { c++ }" with ReferenceError
563 PASS Valid:   "function f() { try {} finally { c++ } }"
564 PASS Valid:   "try { with (x) { } } catch(e) {} finally { if (a) ; }"
565 PASS Valid:   "function f() { try { with (x) { } } catch(e) {} finally { if (a) ; } }"
566 PASS Invalid: "try {}". Produced the following syntax error: "SyntaxError: Unexpected end of script"
567 PASS Invalid: "function f() { try {} }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Try statements must have at least a catch or finally block."
568 PASS Invalid: "catch(e) {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'catch'"
569 PASS Invalid: "function f() { catch(e) {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'catch'"
570 PASS Invalid: "finally {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'finally'"
571 PASS Invalid: "function f() { finally {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'finally'"
572 PASS Invalid: "try a; catch(e) {}". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected a block statement as body of a try statement."
573 PASS Invalid: "function f() { try a; catch(e) {} }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected a block statement as body of a try statement."
574 PASS Invalid: "try {} catch(e) a()". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected exception handler to be a block statement."
575 PASS Invalid: "function f() { try {} catch(e) a() }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected exception handler to be a block statement."
576 PASS Invalid: "try {} finally a()". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected block statement for finally body."
577 PASS Invalid: "function f() { try {} finally a() }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. Expected block statement for finally body."
578 PASS Invalid: "try {} catch(e)". Produced the following syntax error: "SyntaxError: Unexpected end of script"
579 PASS Invalid: "function f() { try {} catch(e) }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected exception handler to be a block statement."
580 PASS Invalid: "try {} finally". Produced the following syntax error: "SyntaxError: Unexpected end of script"
581 PASS Invalid: "function f() { try {} finally }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected block statement for finally body."
582 PASS Invalid: "try {} finally {} catch(e) {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'catch'"
583 PASS Invalid: "function f() { try {} finally {} catch(e) {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'catch'"
584 PASS Invalid: "try {} catch (...) {}". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
585 PASS Invalid: "function f() { try {} catch (...) {} }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
586 PASS Invalid: "try {} catch {}". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected '(' to start a 'catch' target."
587 PASS Invalid: "function f() { try {} catch {} }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected '(' to start a 'catch' target."
588 PASS Valid:   "if (a) try {} finally {} else b;"
589 PASS Valid:   "function f() { if (a) try {} finally {} else b; }"
590 PASS Valid:   "if (--a()) do with(1) try {} catch(ke) { f() ; g() } while (a in b) else {}" with ReferenceError
591 PASS Valid:   "function f() { if (--a()) do with(1) try {} catch(ke) { f() ; g() } while (a in b) else {} }"
592 PASS Invalid: "if (a) try {} else b; catch (e) { }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'. Try statements must have at least a catch or finally block."
593 PASS Invalid: "function f() { if (a) try {} else b; catch (e) { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'else'. Try statements must have at least a catch or finally block."
594 PASS Invalid: "try { finally {}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'finally'"
595 PASS Invalid: "function f() { try { finally {} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'finally'"
596 switch statement
597 PASS Valid:   "switch (a) {}"
598 PASS Valid:   "function f() { switch (a) {} }"
599 PASS Invalid: "switch () {}". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
600 PASS Invalid: "function f() { switch () {} }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
601 PASS Invalid: "case 5:". Produced the following syntax error: "SyntaxError: Parser error"
602 PASS Invalid: "function f() { case 5: }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Expected a closing '}' after a function body."
603 PASS Invalid: "default:". Produced the following syntax error: "SyntaxError: Parser error"
604 PASS Invalid: "function f() { default: }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'default'. Expected a closing '}' after a function body."
605 PASS Invalid: "switch (a) b;". Produced the following syntax error: "SyntaxError: Unexpected identifier 'b'. Expected '{' to start a body of a 'switch'."
606 PASS Invalid: "function f() { switch (a) b; }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'b'. Expected '{' to start a body of a 'switch'."
607 PASS Invalid: "switch (a) case 3: b;". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Expected '{' to start a body of a 'switch'."
608 PASS Invalid: "function f() { switch (a) case 3: b; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Expected '{' to start a body of a 'switch'."
609 PASS Valid:   "switch (f()) { case 5 * f(): default: case '6' - 9: ++i }" with ReferenceError
610 PASS Valid:   "function f() { switch (f()) { case 5 * f(): default: case '6' - 9: ++i } }"
611 PASS Invalid: "switch (true) { default: case 6: default: }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'default'. Expected '}' to end a body of a 'switch'."
612 PASS Invalid: "function f() { switch (true) { default: case 6: default: } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'default'. Expected '}' to end a body of a 'switch'."
613 PASS Invalid: "switch (l) { f(); }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'f'. Expected '}' to end a body of a 'switch'."
614 PASS Invalid: "function f() { switch (l) { f(); } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'f'. Expected '}' to end a body of a 'switch'."
615 PASS Invalid: "switch (l) { case 1: ; a: case 5: }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Cannot parse statement."
616 PASS Invalid: "function f() { switch (l) { case 1: ; a: case 5: } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Cannot parse statement."
617 PASS Valid:   "switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f }" with ReferenceError
618 PASS Valid:   "function f() { switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f } }"
619 PASS Invalid: "switch (g) { case 1: a: }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Cannot parse statement."
620 PASS Invalid: "function f() { switch (g) { case 1: a: } }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Cannot parse statement."
621 PASS Invalid: "switch (g) { case 1: a: default: }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'default'. Cannot parse statement."
622 PASS Invalid: "function f() { switch (g) { case 1: a: default: } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'default'. Cannot parse statement."
623 PASS Invalid: "switch g { case 1: l() }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'g'. Expected '(' to start a subject of a 'switch'."
624 PASS Invalid: "function f() { switch g { case 1: l() } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'g'. Expected '(' to start a subject of a 'switch'."
625 PASS Invalid: "switch (g) { case 1:". Produced the following syntax error: "SyntaxError: Unexpected end of script"
626 PASS Invalid: "function f() { switch (g) { case 1: }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
627 PASS Valid:   "switch (l) { case a = b ? c : d : }" with ReferenceError
628 PASS Valid:   "function f() { switch (l) { case a = b ? c : d : } }"
629 PASS Valid:   "switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 : { } : }" with ReferenceError
630 PASS Valid:   "function f() { switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 : { } : } }"
631 PASS Invalid: "switch (l) { case b ? c : }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
632 PASS Invalid: "function f() { switch (l) { case b ? c : } }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
633 PASS Valid:   "switch (l) { case 1: a: with(g) switch (g) { case 2: default: } default: }" with ReferenceError
634 PASS Valid:   "function f() { switch (l) { case 1: a: with(g) switch (g) { case 2: default: } default: } }"
635 PASS Invalid: "switch (4 - ) { }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
636 PASS Invalid: "function f() { switch (4 - ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
637 PASS Invalid: "switch (l) { default case: 5; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Expected a ':' after switch default clause."
638 PASS Invalid: "function f() { switch (l) { default case: 5; } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'case'. Expected a ':' after switch default clause."
639 PASS Invalid: "L: L: ;". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
640 PASS Invalid: "function f() { L: L: ; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
641 PASS Invalid: "L: L1: L: ;". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
642 PASS Invalid: "function f() { L: L1: L: ; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
643 PASS Invalid: "L: L1: L2: L3: L4: L: ;". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
644 PASS Invalid: "function f() { L: L1: L2: L3: L4: L: ; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Attempted to redeclare the label 'L'."
645 PASS Invalid: "for(var a,b 'this shouldn't be allowed' false ; ) ;". Produced the following syntax error: "SyntaxError: Unexpected string literal 'this shouldn'. can only declare a single variable in an enumeration."
646 PASS Invalid: "function f() { for(var a,b 'this shouldn't be allowed' false ; ) ; }". Produced the following syntax error: "SyntaxError: Unexpected string literal 'this shouldn'. can only declare a single variable in an enumeration."
647 PASS Invalid: "for(var a,b '". Produced the following syntax error: "SyntaxError: Unexpected EOF"
648 PASS Invalid: "function f() { for(var a,b ' }". Produced the following syntax error: "SyntaxError: Unexpected EOF"
649 PASS Valid:   "function __proto__(){}"
650 PASS Valid:   "function f() { function __proto__(){} }"
651 PASS Valid:   "(function __proto__(){})"
652 PASS Valid:   "function f() { (function __proto__(){}) }"
653 PASS Valid:   "'use strict'; function __proto__(){}"
654 PASS Valid:   "function f() { 'use strict'; function __proto__(){} }"
655 PASS Valid:   "'use strict'; (function __proto__(){})"
656 PASS Valid:   "function f() { 'use strict'; (function __proto__(){}) }"
657 PASS Valid:   "'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } f1(5);"
658 PASS Valid:   "function f() { 'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } f1(5); }"
659 PASS Valid:   "'use strict'; function f1(a) { function f2(b) { function f3(c) { return c; } return f3(b); } return f2(a); } f1(5);"
660 PASS Valid:   "function f() { 'use strict'; function f1(a) { function f2(b) { function f3(c) { return c; } return f3(b); } return f2(a); } f1(5); }"
661 PASS Valid:   "'use strict'; function f1(a) { if (a) { function f2(b) { return b; } return f2(a); } else return a; } f1(5);"
662 PASS Valid:   "function f() { 'use strict'; function f1(a) { if (a) { function f2(b) { return b; } return f2(a); } else return a; } f1(5); }"
663 PASS Valid:   "'use strict'; function f1(a) { function f2(b) { if (b) { function f3(c) { return c; } return f3(b); } else return b; } return f2(a); } f1(5);"
664 PASS Valid:   "function f() { 'use strict'; function f1(a) { function f2(b) { if (b) { function f3(c) { return c; } return f3(b); } else return b; } return f2(a); } f1(5); }"
665 PASS Valid:   "'use strict'; function f1(a) {}; function f1(a) {};"
666 PASS Valid:   "function f() { 'use strict'; function f1(a) {}; function f1(a) {}; }"
667 PASS Invalid: "'use strict'; { function f1(a) {}; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
668 PASS Invalid: "function f() { 'use strict'; { function f1(a) {}; function f1(a) {}; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
669 PASS Invalid: "'use strict'; { let f1; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
670 PASS Invalid: "function f() { 'use strict'; { let f1; function f1(a) {}; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
671 PASS Invalid: "'use strict'; { function f1(a) {}; let f1; }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
672 PASS Invalid: "function f() { 'use strict'; { function f1(a) {}; let f1; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
673 PASS Invalid: "'use strict'; let f1; function f1(a) {};". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
674 PASS Invalid: "function f() { 'use strict'; let f1; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
675 PASS Invalid: "'use strict'; function f1(a) {}; let f1; ". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
676 PASS Invalid: "function f() { 'use strict'; function f1(a) {}; let f1;  }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
677 PASS Invalid: "let f1; function f1(a) {};". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
678 PASS Invalid: "function f() { let f1; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
679 PASS Valid:   "function foo() { let f1; { function f1(a) {}; } }"
680 PASS Valid:   "function f() { function foo() { let f1; { function f1(a) {}; } } }"
681 PASS Valid:   "function foo() { { function f1(a) {}; } let f1; }"
682 PASS Valid:   "function f() { function foo() { { function f1(a) {}; } let f1; } }"
683 PASS Valid:   "function foo() { { function foo() { }; function foo() { } } }"
684 PASS Valid:   "function f() { function foo() { { function foo() { }; function foo() { } } } }"
685 PASS Invalid: "function foo() { 'use strict'; { function foo() { }; function foo() { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
686 PASS Invalid: "function f() { function foo() { 'use strict'; { function foo() { }; function foo() { } } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
687 PASS Invalid: "function foo() { let f1; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
688 PASS Invalid: "function f() { function foo() { let f1; function f1(a) {}; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
689 PASS Invalid: "let f1; function f1(a) {};". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
690 PASS Invalid: "function f() { let f1; function f1(a) {}; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'f1' in strict mode."
691 PASS Invalid: "{ function f1(a) {}; let f1; }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
692 PASS Invalid: "function f() { { function f1(a) {}; let f1; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'f1'."
693 PASS Invalid: "{ function f1(a) {}; const f1 = 25; }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'f1'."
694 PASS Invalid: "function f() { { function f1(a) {}; const f1 = 25; } }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'f1'."
695 PASS Invalid: "{ function f1(a) {}; class f1{}; }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'f1'."
696 PASS Invalid: "function f() { { function f1(a) {}; class f1{}; } }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'f1'."
697 PASS Invalid: "function foo() { { let bar; function bar() { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode."
698 PASS Invalid: "function f() { function foo() { { let bar; function bar() { } } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode."
699 PASS Invalid: "function foo() { { function bar() { }; let bar; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'bar'."
700 PASS Invalid: "function f() { function foo() { { function bar() { }; let bar; } } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'bar'."
701 PASS Invalid: "function foo() { { const bar; function bar() { } } }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const declared variable 'bar' must have an initializer."
702 PASS Invalid: "function f() { function foo() { { const bar; function bar() { } } } }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. const declared variable 'bar' must have an initializer."
703 PASS Invalid: "function foo() { { function bar() { }; const bar; } }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'bar'."
704 PASS Invalid: "function f() { function foo() { { function bar() { }; const bar; } } }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'bar'."
705 PASS Invalid: "function foo() { { class bar{}; function bar() { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode."
706 PASS Invalid: "function f() { function foo() { { class bar{}; function bar() { } } } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'bar' in strict mode."
707 PASS Invalid: "function foo() { { function bar() { }; class bar{}; } }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'bar'."
708 PASS Invalid: "function f() { function foo() { { function bar() { }; class bar{}; } } }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'bar'."
709 PASS Valid:   "switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; }"
710 PASS Valid:   "function f() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; } }"
711 PASS Invalid: "switch('foo') { case 1: let foo; function foo() {}; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
712 PASS Invalid: "function f() { switch('foo') { case 1: let foo; function foo() {}; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
713 PASS Invalid: "switch('foo') { case 1: function foo() {}; let foo; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
714 PASS Invalid: "function f() { switch('foo') { case 1: function foo() {}; let foo; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
715 PASS Invalid: "switch('foo') { case 1: function foo() {}; const foo = 25; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'foo'."
716 PASS Invalid: "function f() { switch('foo') { case 1: function foo() {}; const foo = 25; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a const variable twice: 'foo'."
717 PASS Invalid: "switch('foo') { case 1: function foo() {}; class foo {} ; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'foo'."
718 PASS Invalid: "function f() { switch('foo') { case 1: function foo() {}; class foo {} ; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a class twice: 'foo'."
719 PASS Invalid: "switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: let foo; }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
720 PASS Invalid: "function f() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: let foo; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
721 PASS Valid:   "function foo() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: { let foo; } } }"
722 PASS Valid:   "function f() { function foo() { switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; case 3: { let foo; } } } }"
723 PASS Invalid: "'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
724 PASS Invalid: "function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
725 PASS Invalid: "'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
726 PASS Invalid: "function f() { 'use strict'; switch('foo') { case 1: function foo() {}; break; case 2: let foo; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a let variable twice: 'foo'."
727 PASS Invalid: "'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
728 PASS Invalid: "function f() { 'use strict'; switch('foo') { case 1: let foo; break; case 2: function foo() {}; break; } }". Produced the following syntax error: "SyntaxError: Cannot declare a function that shadows a let/const/class/function variable 'foo' in strict mode."
729 PASS Valid:   "'use strict'; switch('foo') { case 1: { let foo; break; } case 2: function foo() {}; break; }"
730 PASS Valid:   "function f() { 'use strict'; switch('foo') { case 1: { let foo; break; } case 2: function foo() {}; break; } }"
731 PASS Valid:   "'use strict'; switch('foo') { case 1: { function foo() { }; break; } case 2: function foo() {}; break; }"
732 PASS Valid:   "function f() { 'use strict'; switch('foo') { case 1: { function foo() { }; break; } case 2: function foo() {}; break; } }"
733 PASS Invalid: "'use strict'; if (true) function foo() { }; ". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
734 PASS Invalid: "function f() { 'use strict'; if (true) function foo() { };  }". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
735 PASS Valid:   "if (true) function foo() { }; "
736 PASS Valid:   "function f() { if (true) function foo() { };  }"
737 PASS Valid:   " let foo; if (true) function foo() { };"
738 PASS Valid:   "function f() {  let foo; if (true) function foo() { }; }"
739 PASS Valid:   "function baz() { let foo; if (true) function foo() { }; }"
740 PASS Valid:   "function f() { function baz() { let foo; if (true) function foo() { }; } }"
741 PASS Valid:   "if (true) function foo() { }; let foo;"
742 PASS Valid:   "function f() { if (true) function foo() { }; let foo; }"
743 PASS Valid:   "{ if (true) function foo() { }; } let foo;"
744 PASS Valid:   "function f() { { if (true) function foo() { }; } let foo; }"
745 PASS Invalid: "let foo; while (false) function foo() { }; ". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
746 PASS Invalid: "function f() { let foo; while (false) function foo() { };  }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
747 PASS Invalid: "let foo;  { while (false) function foo() { }; } ". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
748 PASS Invalid: "function f() { let foo;  { while (false) function foo() { }; }  }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
749 PASS Invalid: "while (false) function foo() { }; let foo;". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
750 PASS Invalid: "function f() { while (false) function foo() { }; let foo; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
751 PASS Invalid: "let foo; while (false) label: function foo() { }; ". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
752 PASS Invalid: "function f() { let foo; while (false) label: function foo() { };  }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
753 PASS Invalid: "while (false) label: function foo() { }; let foo;". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
754 PASS Invalid: "function f() { while (false) label: function foo() { }; let foo; }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
755 PASS Invalid: "'use strict'; while (false) function foo() { }; ". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
756 PASS Invalid: "function f() { 'use strict'; while (false) function foo() { };  }". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
757 PASS Invalid: "'use strict'; if (false) function foo() { }; ". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
758 PASS Invalid: "function f() { 'use strict'; if (false) function foo() { };  }". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
759 PASS Invalid: "'use strict'; do function foo() { } while (false); ". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
760 PASS Invalid: "function f() { 'use strict'; do function foo() { } while (false);  }". Produced the following syntax error: "SyntaxError: Function declarations are only allowed inside blocks or switch statements in strict mode."
761 PASS Invalid: "while (false) function foo() { }; ". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
762 PASS Invalid: "function f() { while (false) function foo() { };  }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
763 PASS Valid:   "if (false) function foo() { }; "
764 PASS Valid:   "function f() { if (false) function foo() { };  }"
765 PASS Invalid: "do function foo() { } while (false); ". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
766 PASS Invalid: "function f() { do function foo() { } while (false);  }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
767 PASS Invalid: "if (cond) label: function foo() { }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
768 PASS Invalid: "function f() { if (cond) label: function foo() { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
769 PASS Invalid: "while (true) { while (true) function bar() { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
770 PASS Invalid: "function f() { while (true) { while (true) function bar() { } } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
771 PASS Invalid: "with ({}) function bar() { }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
772 PASS Invalid: "function f() { with ({}) function bar() { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
773 PASS Valid:   "function bar() { label: function baz() { } }"
774 PASS Valid:   "function f() { function bar() { label: function baz() { } } }"
775 PASS Valid:   "function bar() { let: function baz() { } }"
776 PASS Valid:   "function f() { function bar() { let: function baz() { } } }"
777 PASS Invalid: "function bar() { 'use strict'; let: function baz() { } }". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected a parameter pattern or a ')' in parameter list."
778 PASS Invalid: "function f() { function bar() { 'use strict'; let: function baz() { } } }". Produced the following syntax error: "SyntaxError: Unexpected token ':'. Expected a parameter pattern or a ')' in parameter list."
779 PASS Valid:   "function bar() { yield: function baz() { } }"
780 PASS Valid:   "function f() { function bar() { yield: function baz() { } } }"
781 PASS Valid:   "function bar() { label: label2: function baz() { } }"
782 PASS Valid:   "function f() { function bar() { label: label2: function baz() { } } }"
783 PASS Valid:   "function bar() { label: label2: label3: function baz() { } }"
784 PASS Valid:   "function f() { function bar() { label: label2: label3: function baz() { } } }"
785 PASS Invalid: "function bar() { label: label2: label weird: function baz() { } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'weird'"
786 PASS Invalid: "function f() { function bar() { label: label2: label weird: function baz() { } } }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'weird'"
787 PASS Valid:   "function bar() { label: label2: label3: function baz() { } }"
788 PASS Valid:   "function f() { function bar() { label: label2: label3: function baz() { } } }"
789 PASS Invalid: "function bar() { 'use strict'; label: label2: label 3: function baz() { } }". Produced the following syntax error: "SyntaxError: Unexpected number '3'"
790 PASS Invalid: "function f() { function bar() { 'use strict'; label: label2: label 3: function baz() { } } }". Produced the following syntax error: "SyntaxError: Unexpected number '3'"
791 PASS Invalid: "function bar() { if (cond) label: function foo() { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
792 PASS Invalid: "function f() { function bar() { if (cond) label: function foo() { } } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
793 PASS Invalid: "function bar() { while (cond) label: function foo() { } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
794 PASS Invalid: "function f() { function bar() { while (cond) label: function foo() { } } }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'function'. Function declarations are only allowed inside block statements or at the top level of a program."
795 PASS Valid:   "label: function foo() { }"
796 PASS Valid:   "function f() { label: function foo() { } }"
797 PASS Valid:   "let: function foo() { }"
798 PASS Valid:   "function f() { let: function foo() { } }"
799 PASS Valid:   "yield: function foo() { }"
800 PASS Valid:   "function f() { yield: function foo() { } }"
801 PASS Valid:   "yield: let: function foo() { }"
802 PASS Valid:   "function f() { yield: let: function foo() { } }"
803 PASS Invalid: "'use strict'; yield: let: function foo() { }". Produced the following syntax error: "SyntaxError: Cannot use 'yield' as a label in strict mode."
804 PASS Invalid: "function f() { 'use strict'; yield: let: function foo() { } }". Produced the following syntax error: "SyntaxError: Cannot use 'yield' as a label in strict mode."
805 PASS Valid:   "var str = "'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5);"
806 PASS Valid:   "function f() { var str = "'use strict'; function f1(a) { function f2(b) { return b; } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5); }"
807 PASS Valid:   "var str = "'use strict'; function f1(a) { function f2(b) { function f3(c) { return c; } return f3(b); } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5);"
808 PASS Valid:   "function f() { var str = "'use strict'; function f1(a) { function f2(b) { function f3(c) { return c; } return f3(b); } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5); }"
809 PASS Valid:   "var str = "'use strict'; function f1(a) { if (a) { function f2(b) { return b; } return f2(a); } else return a; } return f1(arguments[0]);"; var foo = new Function(str); foo(5);"
810 PASS Valid:   "function f() { var str = "'use strict'; function f1(a) { if (a) { function f2(b) { return b; } return f2(a); } else return a; } return f1(arguments[0]);"; var foo = new Function(str); foo(5); }"
811 PASS Valid:   "var str = "'use strict'; function f1(a) { function f2(b) { if (b) { function f3(c) { return c; } return f3(b); } else return b; } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5);"
812 PASS Valid:   "function f() { var str = "'use strict'; function f1(a) { function f2(b) { if (b) { function f3(c) { return c; } return f3(b); } else return b; } return f2(a); } return f1(arguments[0]);"; var foo = new Function(str); foo(5); }"
813 PASS Valid:   "if (0) $foo; "
814 PASS Valid:   "function f() { if (0) $foo;  }"
815 PASS Valid:   "if (0) _foo; "
816 PASS Valid:   "function f() { if (0) _foo;  }"
817 PASS Valid:   "if (0) foo$; "
818 PASS Valid:   "function f() { if (0) foo$;  }"
819 PASS Valid:   "if (0) foo_; "
820 PASS Valid:   "function f() { if (0) foo_;  }"
821 PASS Valid:   "if (0) obj.$foo; "
822 PASS Valid:   "function f() { if (0) obj.$foo;  }"
823 PASS Valid:   "if (0) obj._foo; "
824 PASS Valid:   "function f() { if (0) obj._foo;  }"
825 PASS Valid:   "if (0) obj.foo$; "
826 PASS Valid:   "function f() { if (0) obj.foo$;  }"
827 PASS Valid:   "if (0) obj.foo_; "
828 PASS Valid:   "function f() { if (0) obj.foo_;  }"
829 PASS Valid:   "if (0) obj.foo\u03bb; "
830 PASS Valid:   "function f() { if (0) obj.foo\u03bb;  }"
831 PASS Valid:   "if (0) new a(b+c).d = 5"
832 PASS Valid:   "function f() { if (0) new a(b+c).d = 5 }"
833 PASS Valid:   "if (0) new a(b+c) = 5"
834 PASS Valid:   "function f() { if (0) new a(b+c) = 5 }"
835 PASS Valid:   "([1 || 1].a = 1)"
836 PASS Valid:   "function f() { ([1 || 1].a = 1) }"
837 PASS Valid:   "({a: 1 || 1}.a = 1)"
838 PASS Valid:   "function f() { ({a: 1 || 1}.a = 1) }"
839 PASS Invalid: "var a.b = c". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected ';' after variable declaration."
840 PASS Invalid: "function f() { var a.b = c }". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected ';' after variable declaration."
841 PASS Invalid: "var a.b;". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected ';' after variable declaration."
842 PASS Invalid: "function f() { var a.b; }". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected ';' after variable declaration."
843 PASS Valid:   "for (of of of){}" with ReferenceError
844 PASS Valid:   "function f() { for (of of of){} }"
845 PASS Valid:   "for (of; of; of){}" with ReferenceError
846 PASS Valid:   "function f() { for (of; of; of){} }"
847 PASS Valid:   "for (var of of of){}" with TypeError
848 PASS Valid:   "function f() { for (var of of of){} }"
849 PASS Valid:   "for (var of; of; of){}"
850 PASS Valid:   "function f() { for (var of; of; of){} }"
851 PASS Invalid: "for (var of.of of of){}". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax."
852 PASS Invalid: "function f() { for (var of.of of of){} }". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax."
853 PASS Invalid: "for (var of[of] of of){}". Produced the following syntax error: "SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax."
854 PASS Invalid: "function f() { for (var of[of] of of){} }". Produced the following syntax error: "SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax."
855 PASS Valid:   "for (of.of of of){}" with ReferenceError
856 PASS Valid:   "function f() { for (of.of of of){} }"
857 PASS Valid:   "for (of[of] of of){}" with ReferenceError
858 PASS Valid:   "function f() { for (of[of] of of){} }"
859 PASS Valid:   "for (var [of] of of){}" with TypeError
860 PASS Valid:   "function f() { for (var [of] of of){} }"
861 PASS Valid:   "for (var {of} of of){}" with TypeError
862 PASS Valid:   "function f() { for (var {of} of of){} }"
863 PASS Valid:   "for (of in of){}" with ReferenceError
864 PASS Valid:   "function f() { for (of in of){} }"
865 PASS Valid:   "for (var of in of){}"
866 PASS Valid:   "function f() { for (var of in of){} }"
867 PASS Invalid: "for (var of.of in of){}". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax."
868 PASS Invalid: "function f() { for (var of.of in of){} }". Produced the following syntax error: "SyntaxError: Unexpected token '.'. Expected either 'in' or 'of' in enumeration syntax."
869 PASS Valid:   "for (of.of in of){}" with ReferenceError
870 PASS Valid:   "function f() { for (of.of in of){} }"
871 PASS Valid:   "for (of[of] in of){}" with ReferenceError
872 PASS Valid:   "function f() { for (of[of] in of){} }"
873 PASS Invalid: "for (var of[of] in of){}". Produced the following syntax error: "SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax."
874 PASS Invalid: "function f() { for (var of[of] in of){} }". Produced the following syntax error: "SyntaxError: Unexpected token '['. Expected either 'in' or 'of' in enumeration syntax."
875 PASS Valid:   "for (var [of] in of){}"
876 PASS Valid:   "function f() { for (var [of] in of){} }"
877 PASS Valid:   "for (var {of} in of){}"
878 PASS Valid:   "function f() { for (var {of} in of){} }"
879 PASS Valid:   "for ([of] in of){}" with ReferenceError
880 PASS Valid:   "function f() { for ([of] in of){} }"
881 PASS Valid:   "for ({of} in of){}" with ReferenceError
882 PASS Valid:   "function f() { for ({of} in of){} }"
883 PASS Invalid: "for (var of = x of of){}". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
884 PASS Invalid: "function f() { for (var of = x of of){} }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
885 PASS Invalid: "for (var {of} = x of of){}". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
886 PASS Invalid: "function f() { for (var {of} = x of of){} }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
887 PASS Invalid: "for (var [of] = x of of){}". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
888 PASS Invalid: "function f() { for (var [of] = x of of){} }". Produced the following syntax error: "SyntaxError: Cannot assign to the loop variable inside a for-of loop header."
889 PASS Invalid: "for (of of of of){}". Produced the following syntax error: "SyntaxError: Unexpected identifier 'of'. Expected ')' to end a for-of header."
890 PASS Invalid: "function f() { for (of of of of){} }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'of'. Expected ')' to end a for-of header."
891 PASS Invalid: "for (of of; of; of){}". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
892 PASS Invalid: "function f() { for (of of; of; of){} }". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
893 PASS Invalid: "for (of of []; of; of){}". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Expected ')' to end a for-of header."
894 PASS Invalid: "function f() { for (of of []; of; of){} }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Expected ')' to end a for-of header."
895 PASS Invalid: "for (of of){}". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
896 PASS Invalid: "function f() { for (of of){} }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
897 PASS Invalid: "for (var of of){}". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
898 PASS Invalid: "function f() { for (var of of){} }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
899 PASS Invalid: "for (of of in of){}". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'"
900 PASS Invalid: "function f() { for (of of in of){} }". Produced the following syntax error: "SyntaxError: Unexpected keyword 'in'"
901 PASS Invalid: "for (of in){}". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
902 PASS Invalid: "function f() { for (of in){} }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
903 PASS Invalid: "for (var of in){}". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
904 PASS Invalid: "function f() { for (var of in){} }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
905 spread operator and destructuring
906 PASS Valid:   "foo(...bar)" with ReferenceError
907 PASS Valid:   "function f() { foo(...bar) }"
908 PASS Valid:   "o.foo(...bar)" with ReferenceError
909 PASS Valid:   "function f() { o.foo(...bar) }"
910 PASS Valid:   "o[foo](...bar)" with ReferenceError
911 PASS Valid:   "function f() { o[foo](...bar) }"
912 PASS Valid:   "new foo(...bar)" with ReferenceError
913 PASS Valid:   "function f() { new foo(...bar) }"
914 PASS Valid:   "new o.foo(...bar)" with ReferenceError
915 PASS Valid:   "function f() { new o.foo(...bar) }"
916 PASS Valid:   "new o[foo](...bar)" with ReferenceError
917 PASS Valid:   "function f() { new o[foo](...bar) }"
918 PASS Invalid: "foo(...)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
919 PASS Invalid: "function f() { foo(...) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
920 PASS Invalid: "o.foo(...)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
921 PASS Invalid: "function f() { o.foo(...) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
922 PASS Invalid: "o[foo](...)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
923 PASS Invalid: "function f() { o[foo](...) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
924 PASS Invalid: "foo(bar...)". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
925 PASS Invalid: "function f() { foo(bar...) }". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
926 PASS Invalid: "o.foo(bar...)". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
927 PASS Invalid: "function f() { o.foo(bar...) }". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
928 PASS Invalid: "o[foo](bar...)". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
929 PASS Invalid: "function f() { o[foo](bar...) }". Produced the following syntax error: "SyntaxError: The '...' operator should come before the target expression."
930 PASS Valid:   "foo(a,...bar)" with ReferenceError
931 PASS Valid:   "function f() { foo(a,...bar) }"
932 PASS Valid:   "o.foo(a,...bar)" with ReferenceError
933 PASS Valid:   "function f() { o.foo(a,...bar) }"
934 PASS Valid:   "o[foo](a,...bar)" with ReferenceError
935 PASS Valid:   "function f() { o[foo](a,...bar) }"
936 PASS Valid:   "foo(...bar, a)" with ReferenceError
937 PASS Valid:   "function f() { foo(...bar, a) }"
938 PASS Valid:   "o.foo(...bar, a)" with ReferenceError
939 PASS Valid:   "function f() { o.foo(...bar, a) }"
940 PASS Valid:   "o[foo](...bar, a)" with ReferenceError
941 PASS Valid:   "function f() { o[foo](...bar, a) }"
942 PASS Valid:   "[...bar]" with ReferenceError
943 PASS Valid:   "function f() { [...bar] }"
944 PASS Valid:   "[a, ...bar]" with ReferenceError
945 PASS Valid:   "function f() { [a, ...bar] }"
946 PASS Valid:   "[...bar, a]" with ReferenceError
947 PASS Valid:   "function f() { [...bar, a] }"
948 PASS Valid:   "[...bar,,,,]" with ReferenceError
949 PASS Valid:   "function f() { [...bar,,,,] }"
950 PASS Valid:   "[,,,,...bar]" with ReferenceError
951 PASS Valid:   "function f() { [,,,,...bar] }"
952 PASS Valid:   "({1: x})" with ReferenceError
953 PASS Valid:   "function f() { ({1: x}) }"
954 PASS Valid:   "({1: x}=1)"
955 PASS Valid:   "function f() { ({1: x}=1) }"
956 PASS Valid:   "({1: x}=null)" with TypeError
957 PASS Valid:   "function f() { ({1: x}=null) }"
958 PASS Valid:   "({1: x})"
959 PASS Valid:   "function f() { ({1: x}) }"
960 PASS Valid:   "({1: x}=1)"
961 PASS Valid:   "function f() { ({1: x}=1) }"
962 PASS Valid:   "({1: x}=null)" with TypeError
963 PASS Valid:   "function f() { ({1: x}=null) }"
964 PASS Valid:   "({a: b}=null)" with TypeError
965 PASS Valid:   "function f() { ({a: b}=null) }"
966 PASS Valid:   "'use strict'; ({1: x})"
967 PASS Valid:   "function f() { 'use strict'; ({1: x}) }"
968 PASS Valid:   "'use strict'; ({1: x}=1)"
969 PASS Valid:   "function f() { 'use strict'; ({1: x}=1) }"
970 PASS Valid:   "'use strict'; ({1: x}=null)" with TypeError
971 PASS Valid:   "function f() { 'use strict'; ({1: x}=null) }"
972 PASS Valid:   "'use strict'; ({a: b}=null)" with TypeError
973 PASS Valid:   "function f() { 'use strict'; ({a: b}=null) }"
974 PASS Valid:   "var {1:x}=1"
975 PASS Valid:   "function f() { var {1:x}=1 }"
976 PASS Valid:   "var {x}=1"
977 PASS Valid:   "function f() { var {x}=1 }"
978 PASS Valid:   "var {x, y}=1"
979 PASS Valid:   "function f() { var {x, y}=1 }"
980 PASS Valid:   "var [x]=1" with TypeError
981 PASS Valid:   "function f() { var [x]=1 }"
982 PASS Valid:   "var [x, y]=1" with TypeError
983 PASS Valid:   "function f() { var [x, y]=1 }"
984 PASS Valid:   "[x]=1" with TypeError
985 PASS Valid:   "function f() { [x]=1 }"
986 PASS Valid:   "var [x]=1" with TypeError
987 PASS Valid:   "function f() { var [x]=1 }"
988 PASS Valid:   "({[x]: 1})"
989 PASS Valid:   "function f() { ({[x]: 1}) }"
990 PASS Valid:   "delete ({a}=1)"
991 PASS Valid:   "function f() { delete ({a}=1) }"
992 PASS Valid:   "delete ({a:a}=1)"
993 PASS Valid:   "function f() { delete ({a:a}=1) }"
994 PASS Valid:   "({a}=1)()" with TypeError
995 PASS Valid:   "function f() { ({a}=1)() }"
996 PASS Valid:   "({a:a}=1)()" with TypeError
997 PASS Valid:   "function f() { ({a:a}=1)() }"
998 PASS Valid:   "({a}=1)=1" with ReferenceError
999 PASS Valid:   "function f() { ({a}=1)=1 }"
1000 PASS Valid:   "({a:a}=1)=1" with ReferenceError
1001 PASS Valid:   "function f() { ({a:a}=1)=1 }"
1002 PASS Valid:   "({a}=1=1)" with ReferenceError
1003 PASS Valid:   "function f() { ({a}=1=1) }"
1004 PASS Valid:   "({a:a}=1=1)" with ReferenceError
1005 PASS Valid:   "function f() { ({a:a}=1=1) }"
1006 PASS Invalid: "var {x}". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1007 PASS Invalid: "function f() { var {x} }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1008 PASS Invalid: "var {x, y}". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1009 PASS Invalid: "function f() { var {x, y} }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1010 PASS Invalid: "var {x} = 20, {x, y}". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1011 PASS Invalid: "function f() { var {x} = 20, {x, y} }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1012 PASS Invalid: "var {foo:bar, bar:baz}". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1013 PASS Invalid: "function f() { var {foo:bar, bar:baz} }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1014 PASS Invalid: "var [x]". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1015 PASS Invalid: "function f() { var [x] }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1016 PASS Invalid: "var [x, y]". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1017 PASS Invalid: "function f() { var [x, y] }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1018 PASS Invalid: "var [x] = [], [x, y]". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1019 PASS Invalid: "function f() { var [x] = [], [x, y] }". Produced the following syntax error: "SyntaxError: Unexpected token '}'. Expected an initializer in destructuring variable declaration."
1020 PASS Valid:   "({get x(){}})"
1021 PASS Valid:   "function f() { ({get x(){}}) }"
1022 PASS Valid:   "({set x(x){}})"
1023 PASS Valid:   "function f() { ({set x(x){}}) }"
1024 PASS Invalid: "({get x(a){}})". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters."
1025 PASS Invalid: "function f() { ({get x(a){}}) }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters."
1026 PASS Invalid: "({get x(a,b){}})". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters."
1027 PASS Invalid: "function f() { ({get x(a,b){}}) }". Produced the following syntax error: "SyntaxError: Unexpected identifier 'a'. getter functions must have no parameters."
1028 PASS Invalid: "({set x(){}})". Produced the following syntax error: "SyntaxError: Unexpected token ')'. setter functions must have one parameter."
1029 PASS Invalid: "function f() { ({set x(){}}) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. setter functions must have one parameter."
1030 PASS Invalid: "({set x(a,b){}})". Produced the following syntax error: "SyntaxError: Unexpected token ','. setter functions must have one parameter."
1031 PASS Invalid: "function f() { ({set x(a,b){}}) }". Produced the following syntax error: "SyntaxError: Unexpected token ','. setter functions must have one parameter."
1032 PASS Valid:   "({get [x](){}})"
1033 PASS Valid:   "function f() { ({get [x](){}}) }"
1034 PASS Invalid: "({get [x (){}})". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name."
1035 PASS Invalid: "function f() { ({get [x (){}}) }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name."
1036 PASS Invalid: "({set [x](){}})". Produced the following syntax error: "SyntaxError: Unexpected token ')'. setter functions must have one parameter."
1037 PASS Invalid: "function f() { ({set [x](){}}) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'. setter functions must have one parameter."
1038 PASS Valid:   "({set [x](x){}})"
1039 PASS Valid:   "function f() { ({set [x](x){}}) }"
1040 PASS Invalid: "({set [x (x){}})". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name."
1041 PASS Invalid: "function f() { ({set [x (x){}}) }". Produced the following syntax error: "SyntaxError: Unexpected token '{'. Expected ']' to end a computed property name."
1042 PASS Valid:   "({set foo(x) { } })"
1043 PASS Valid:   "function f() { ({set foo(x) { } }) }"
1044 PASS Valid:   "({set foo(x) { 'use strict'; } })"
1045 PASS Valid:   "function f() { ({set foo(x) { 'use strict'; } }) }"
1046 PASS Invalid: "({set foo(x = 20) { 'use strict'; } })". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1047 PASS Invalid: "function f() { ({set foo(x = 20) { 'use strict'; } }) }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1048 PASS Invalid: "({set foo({x}) { 'use strict'; } })". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1049 PASS Invalid: "function f() { ({set foo({x}) { 'use strict'; } }) }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1050 PASS Invalid: "({set foo([x]) { 'use strict'; } })". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1051 PASS Invalid: "function f() { ({set foo([x]) { 'use strict'; } }) }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1052 PASS Invalid: "({set foo(...x) {} })". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
1053 PASS Invalid: "function f() { ({set foo(...x) {} }) }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
1054 PASS Valid:   "class Foo { set v(z) { } }"
1055 PASS Valid:   "function f() { class Foo { set v(z) { } } }"
1056 PASS Valid:   "class Foo { set v(z) { 'use strict'; } }"
1057 PASS Valid:   "function f() { class Foo { set v(z) { 'use strict'; } } }"
1058 PASS Invalid: "class Foo { set v(z = 50) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1059 PASS Invalid: "function f() { class Foo { set v(z = 50) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1060 PASS Invalid: "class Foo { set v({z}) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1061 PASS Invalid: "function f() { class Foo { set v({z}) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1062 PASS Invalid: "class Foo { set v([z]) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1063 PASS Invalid: "function f() { class Foo { set v([z]) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1064 PASS Invalid: "class Foo { set v(...z) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
1065 PASS Invalid: "function f() { class Foo { set v(...z) { } } }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a parameter pattern or a ')' in parameter list."
1066 PASS Invalid: "class foo { set y([x, y, x]) { } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1067 PASS Invalid: "function f() { class foo { set y([x, y, x]) { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1068 PASS Invalid: "class foo { set y([x, y, {x}]) { } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1069 PASS Invalid: "function f() { class foo { set y([x, y, {x}]) { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1070 PASS Invalid: "class foo { set y({x, x}) { } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1071 PASS Invalid: "function f() { class foo { set y({x, x}) { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1072 PASS Invalid: "class foo { set y({x, field: {x}}) { } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1073 PASS Invalid: "function f() { class foo { set y({x, field: {x}}) { } } }". Produced the following syntax error: "SyntaxError: Cannot declare a parameter named 'x' in strict mode as it has already been declared."
1074 PASS Valid:   "class foo { set y({x, field: {xx}}) { } }"
1075 PASS Valid:   "function f() { class foo { set y({x, field: {xx}}) { } } }"
1076 PASS Invalid: "({[...x]: 1})". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1077 PASS Invalid: "function f() { ({[...x]: 1}) }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1078 PASS Invalid: "function f({a, a}) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1079 PASS Invalid: "function f() { function f({a, a}) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1080 PASS Invalid: "function f({a}, a) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1081 PASS Invalid: "function f() { function f({a}, a) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1082 PASS Invalid: "function f([b, b]) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1083 PASS Invalid: "function f() { function f([b, b]) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1084 PASS Invalid: "function f([b], b) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1085 PASS Invalid: "function f() { function f([b], b) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1086 PASS Invalid: "function f({a: {b}}, b) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1087 PASS Invalid: "function f() { function f({a: {b}}, b) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in function with destructuring parameters."
1088 PASS Valid:   "function f(a, b = 20) {}"
1089 PASS Valid:   "function f() { function f(a, b = 20) {} }"
1090 PASS Valid:   "function f(a = 20, b = a) {}"
1091 PASS Valid:   "function f() { function f(a = 20, b = a) {} }"
1092 PASS Valid:   "function f({a = 20} = {a: 40}, b = a) {}"
1093 PASS Valid:   "function f() { function f({a = 20} = {a: 40}, b = a) {} }"
1094 PASS Valid:   "function f([a,b,c] = [1,2,3]) {}"
1095 PASS Valid:   "function f() { function f([a,b,c] = [1,2,3]) {} }"
1096 PASS Invalid: "function f(a, a=20) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1097 PASS Invalid: "function f() { function f(a, a=20) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1098 PASS Invalid: "function f({a} = 20, a=20) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1099 PASS Invalid: "function f() { function f({a} = 20, a=20) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1100 PASS Invalid: "function f([a,b,a] = [1,2,3]) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1101 PASS Invalid: "function f() { function f([a,b,a] = [1,2,3]) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1102 PASS Invalid: "function f([a,b,c] = [1,2,3], a) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1103 PASS Invalid: "function f() { function f([a,b,c] = [1,2,3], a) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1104 PASS Invalid: "function f([a,b,c] = [1,2,3], {a}) {}". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1105 PASS Invalid: "function f() { function f([a,b,c] = [1,2,3], {a}) {} }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with default parameter values."
1106 PASS Valid:   "( function(){ return this || eval('this'); }().x = 'y' )"
1107 PASS Valid:   "function f() { ( function(){ return this || eval('this'); }().x = 'y' ) }"
1108 PASS Invalid: "function(){ return this || eval('this'); }().x = 'y'". Produced the following syntax error: "SyntaxError: Function statements must have a name."
1109 PASS Invalid: "function f() { function(){ return this || eval('this'); }().x = 'y' }". Produced the following syntax error: "SyntaxError: Function statements must have a name."
1110 PASS Invalid: "1 % +". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1111 PASS Invalid: "function f() { 1 % + }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1112 PASS Invalid: "1 % -". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1113 PASS Invalid: "function f() { 1 % - }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1114 PASS Invalid: "1 % typeof". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1115 PASS Invalid: "function f() { 1 % typeof }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1116 PASS Invalid: "1 % void". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1117 PASS Invalid: "function f() { 1 % void }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1118 PASS Invalid: "1 % !". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1119 PASS Invalid: "function f() { 1 % ! }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1120 PASS Invalid: "1 % ~". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1121 PASS Invalid: "function f() { 1 % ~ }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1122 PASS Invalid: "1 % delete". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1123 PASS Invalid: "function f() { 1 % delete }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1124 PASS Invalid: "1 % ++". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1125 PASS Invalid: "function f() { 1 % ++ }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1126 PASS Invalid: "1 % --". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1127 PASS Invalid: "function f() { 1 % -- }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1128 PASS Invalid: "1 % 
1129 ++". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1130 PASS Invalid: "function f() { 1 % 
1131 ++ }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1132 PASS Invalid: "1 % 
1133 --". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1134 PASS Invalid: "function f() { 1 % 
1135 -- }". Produced the following syntax error: "SyntaxError: Unexpected token '}'"
1136 PASS Invalid: "let {w} = (foo-=()), {} = ("a" ^= "b");". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1137 PASS Invalid: "function f() { let {w} = (foo-=()), {} = ("a" ^= "b"); }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1138 PASS Invalid: "const {w} = (foo-=()), {} = ("a" ^= "b");". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1139 PASS Invalid: "function f() { const {w} = (foo-=()), {} = ("a" ^= "b"); }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1140 PASS Invalid: "var {w} = (foo-=()), {} = ("a" ^= "b");". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1141 PASS Invalid: "function f() { var {w} = (foo-=()), {} = ("a" ^= "b"); }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1142 PASS Invalid: "let {w} = ();". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1143 PASS Invalid: "function f() { let {w} = (); }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1144 PASS Invalid: "let {w} = 1234abc;". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1145 PASS Invalid: "function f() { let {w} = 1234abc; }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1146 PASS Invalid: "const {w} = 1234abc;". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1147 PASS Invalid: "function f() { const {w} = 1234abc; }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1148 PASS Invalid: "var {w} = 1234abc;". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1149 PASS Invalid: "function f() { var {w} = 1234abc; }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1150 PASS Invalid: "var [...x = 20] = 20;". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern."
1151 PASS Invalid: "function f() { var [...x = 20] = 20; }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern."
1152 PASS Invalid: "var [...[...x = 20]] = 20;". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern."
1153 PASS Invalid: "function f() { var [...[...x = 20]] = 20; }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing ']' following a rest element destructuring pattern."
1154 PASS Valid:   "var [...x] = 20;" with TypeError
1155 PASS Valid:   "function f() { var [...x] = 20; }"
1156 PASS Valid:   "var [...[...x]] = 20;" with TypeError
1157 PASS Valid:   "function f() { var [...[...x]] = 20; }"
1158 PASS Valid:   "var [...[...{x}]] = 20;" with TypeError
1159 PASS Valid:   "function f() { var [...[...{x}]] = 20; }"
1160 PASS Valid:   "var [...[x = 20, ...y]] = 20;" with TypeError
1161 PASS Valid:   "function f() { var [...[x = 20, ...y]] = 20; }"
1162 PASS Valid:   "var [...[{x} = 20, ...y]] = 20;" with TypeError
1163 PASS Valid:   "function f() { var [...[{x} = 20, ...y]] = 20; }"
1164 PASS Valid:   "var {x: [y, ...[...[...{z: [...z]}]]]} = 20" with TypeError
1165 PASS Valid:   "function f() { var {x: [y, ...[...[...{z: [...z]}]]]} = 20 }"
1166 PASS Valid:   "var {x: [y, {z: {z: [...z]}}]} = 20" with TypeError
1167 PASS Valid:   "function f() { var {x: [y, {z: {z: [...z]}}]} = 20 }"
1168 PASS Invalid: "var [...y, ...z] = 20". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing ']' following a rest element destructuring pattern."
1169 PASS Invalid: "function f() { var [...y, ...z] = 20 }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing ']' following a rest element destructuring pattern."
1170 PASS Valid:   "var [...{...y}] = 20" with TypeError
1171 PASS Valid:   "function f() { var [...{...y}] = 20 }"
1172 PASS Valid:   "var {a, b, ...r} = {a: 1, b: 2, c: 3};"
1173 PASS Valid:   "function f() { var {a, b, ...r} = {a: 1, b: 2, c: 3}; }"
1174 PASS Valid:   "var {a, b, ...{d}} = {a: 1, b: 2, c: 3, d: 4};"
1175 PASS Valid:   "function f() { var {a, b, ...{d}} = {a: 1, b: 2, c: 3, d: 4}; }"
1176 PASS Valid:   "var {a, b, ...{d = 15}} = {a: 1, b: 2, c: 3, d: 4};"
1177 PASS Valid:   "function f() { var {a, b, ...{d = 15}} = {a: 1, b: 2, c: 3, d: 4}; }"
1178 PASS Valid:   "var {a, b, ...{d = 15, ...r}} = {a: 1, b: 2, c: 3, d: 4};"
1179 PASS Valid:   "function f() { var {a, b, ...{d = 15, ...r}} = {a: 1, b: 2, c: 3, d: 4}; }"
1180 PASS Valid:   "(({a, b, ...r}) => {})({a: 1, b: 2, c: 3, d: 4});"
1181 PASS Valid:   "function f() { (({a, b, ...r}) => {})({a: 1, b: 2, c: 3, d: 4}); }"
1182 PASS Valid:   "(function ({a, b, ...r}) {})({a: 1, b: 2, c: 3, d: 4});"
1183 PASS Valid:   "function f() { (function ({a, b, ...r}) {})({a: 1, b: 2, c: 3, d: 4}); }"
1184 PASS Valid:   "var a, b, c; ({a, b, ...r} = {a: 1, b: 2, c: 3, d: 4});"
1185 PASS Valid:   "function f() { var a, b, c; ({a, b, ...r} = {a: 1, b: 2, c: 3, d: 4}); }"
1186 PASS Valid:   "function * foo(o) { ({...{ x = yield }} = o); }"
1187 PASS Valid:   "function f() { function * foo(o) { ({...{ x = yield }} = o); } }"
1188 PASS Valid:   "let c = {}; let o = {a: 1, b: 2, ...c};"
1189 PASS Valid:   "function f() { let c = {}; let o = {a: 1, b: 2, ...c}; }"
1190 PASS Valid:   "let o = {a: 1, b: 3, ...{}};"
1191 PASS Valid:   "function f() { let o = {a: 1, b: 3, ...{}}; }"
1192 PASS Valid:   "let o = {a: 1, b: 2, ...null, c: 3};"
1193 PASS Valid:   "function f() { let o = {a: 1, b: 2, ...null, c: 3}; }"
1194 PASS Valid:   "let o = {a: 1, b: 2, ...undefined, c: 3};"
1195 PASS Valid:   "function f() { let o = {a: 1, b: 2, ...undefined, c: 3}; }"
1196 PASS Valid:   "let o = {a: 1, b: 2, ...{...{}}, c: 3};"
1197 PASS Valid:   "function f() { let o = {a: 1, b: 2, ...{...{}}, c: 3}; }"
1198 PASS Valid:   "let c = {}; let o = {a: 1, b: 2, ...c, d: 3, ...c, e: 5};"
1199 PASS Valid:   "function f() { let c = {}; let o = {a: 1, b: 2, ...c, d: 3, ...c, e: 5}; }"
1200 PASS Valid:   "function* gen() { yield {a: 1, b: 2, ...yield yield, d: 3, ...yield, e: 5}; }"
1201 PASS Valid:   "function f() { function* gen() { yield {a: 1, b: 2, ...yield yield, d: 3, ...yield, e: 5}; } }"
1202 PASS Invalid: "var {...r = {a: 2}} = {a: 1, b: 2};". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing '}' following a rest element destructuring pattern."
1203 PASS Invalid: "function f() { var {...r = {a: 2}} = {a: 1, b: 2}; }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a closing '}' following a rest element destructuring pattern."
1204 PASS Invalid: "var {...r, b} = {a: 1, b: 2};". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing '}' following a rest element destructuring pattern."
1205 PASS Invalid: "function f() { var {...r, b} = {a: 1, b: 2}; }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing '}' following a rest element destructuring pattern."
1206 PASS Invalid: "var {...r, ...e} = {a: 1, b: 2};". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing '}' following a rest element destructuring pattern."
1207 PASS Invalid: "function f() { var {...r, ...e} = {a: 1, b: 2}; }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Expected a closing '}' following a rest element destructuring pattern."
1208 PASS Invalid: "function * (o) { ({ ...{ x: yield } } = o); }". Produced the following syntax error: "SyntaxError: Unexpected token '('"
1209 PASS Invalid: "function f() { function * (o) { ({ ...{ x: yield } } = o); } }". Produced the following syntax error: "SyntaxError: Unexpected token '('"
1210 Rest parameter
1211 PASS Valid:   "function foo(...a) { }"
1212 PASS Valid:   "function f() { function foo(...a) { } }"
1213 PASS Valid:   "function foo(a, ...b) { }"
1214 PASS Valid:   "function f() { function foo(a, ...b) { } }"
1215 PASS Valid:   "function foo(a = 20, ...b) { }"
1216 PASS Valid:   "function f() { function foo(a = 20, ...b) { } }"
1217 PASS Valid:   "function foo(a, b, c, d, e, f, g, ...h) { }"
1218 PASS Valid:   "function f() { function foo(a, b, c, d, e, f, g, ...h) { } }"
1219 PASS Invalid: "function foo(a, ...b, c) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1220 PASS Invalid: "function f() { function foo(a, ...b, c) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1221 PASS Invalid: "function foo(a, ...b, ) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1222 PASS Invalid: "function f() { function foo(a, ...b, ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1223 PASS Invalid: "function foo(a, ...[b], ) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1224 PASS Invalid: "function f() { function foo(a, ...[b], ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1225 PASS Invalid: "function foo(a, ...{b}, ) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1226 PASS Invalid: "function f() { function foo(a, ...{b}, ) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1227 PASS Invalid: "function foo(a, ...a) { }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1228 PASS Invalid: "function f() { function foo(a, ...a) { } }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1229 PASS Invalid: "function foo(...a, ...b) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1230 PASS Invalid: "function f() { function foo(...a, ...b) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1231 PASS Invalid: "function foo(...b, ...b) { }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1232 PASS Invalid: "function f() { function foo(...b, ...b) { } }". Produced the following syntax error: "SyntaxError: Unexpected token ','. Rest parameter should be the last parameter in a function declaration."
1233 PASS Invalid: "function foo(...b  ...b) { }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a ')' or a ',' after a parameter declaration."
1234 PASS Invalid: "function f() { function foo(...b  ...b) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '...'. Expected a ')' or a ',' after a parameter declaration."
1235 PASS Invalid: "function foo(a, a, ...b) { }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1236 PASS Invalid: "function f() { function foo(a, a, ...b) { } }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1237 PASS Invalid: "function foo(a, ...{b} = 20) { }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration."
1238 PASS Invalid: "function f() { function foo(a, ...{b} = 20) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration."
1239 PASS Invalid: "function foo(a, ...b = 20) { }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration."
1240 PASS Invalid: "function f() { function foo(a, ...b = 20) { } }". Produced the following syntax error: "SyntaxError: Unexpected token '='. Expected a ')' or a ',' after a parameter declaration."
1241 PASS Valid:   "function foo(...{b}) { }"
1242 PASS Valid:   "function f() { function foo(...{b}) { } }"
1243 PASS Valid:   "function foo(...[b]) { }"
1244 PASS Valid:   "function f() { function foo(...[b]) { } }"
1245 PASS Invalid: "function foo(...123) { }". Produced the following syntax error: "SyntaxError: Unexpected number '123'. Expected a parameter pattern or a ')' in parameter list."
1246 PASS Invalid: "function f() { function foo(...123) { } }". Produced the following syntax error: "SyntaxError: Unexpected number '123'. Expected a parameter pattern or a ')' in parameter list."
1247 PASS Invalid: "function foo(...123abc) { }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1248 PASS Invalid: "function f() { function foo(...123abc) { } }". Produced the following syntax error: "SyntaxError: No identifiers allowed directly after numeric literal"
1249 PASS Valid:   "function foo(...abc123) { }"
1250 PASS Valid:   "function f() { function foo(...abc123) { } }"
1251 PASS Valid:   "function foo(...let) { }"
1252 PASS Valid:   "function f() { function foo(...let) { } }"
1253 PASS Invalid: "'use strict'; function foo(...let) { }". Produced the following syntax error: "SyntaxError: Cannot use 'let' as a parameter name in strict mode."
1254 PASS Invalid: "function f() { 'use strict'; function foo(...let) { } }". Produced the following syntax error: "SyntaxError: Cannot use 'let' as a parameter name in strict mode."
1255 PASS Invalid: "'use strict'; function foo(...[let]) { }". Produced the following syntax error: "SyntaxError: Cannot use 'let' as a parameter name in strict mode."
1256 PASS Invalid: "function f() { 'use strict'; function foo(...[let]) { } }". Produced the following syntax error: "SyntaxError: Cannot use 'let' as a parameter name in strict mode."
1257 PASS Valid:   "function foo(...yield) { }"
1258 PASS Valid:   "function f() { function foo(...yield) { } }"
1259 PASS Invalid: "'use strict'; function foo(...yield) { }". Produced the following syntax error: "SyntaxError: Cannot use 'yield' as a parameter name in strict mode."
1260 PASS Invalid: "function f() { 'use strict'; function foo(...yield) { } }". Produced the following syntax error: "SyntaxError: Cannot use 'yield' as a parameter name in strict mode."
1261 PASS Invalid: "function foo(...if) { }". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'if' as a parameter name."
1262 PASS Invalid: "function f() { function foo(...if) { } }". Produced the following syntax error: "SyntaxError: Cannot use the keyword 'if' as a parameter name."
1263 PASS Valid:   "let x = (...a) => { }"
1264 PASS Valid:   "function f() { let x = (...a) => { } }"
1265 PASS Valid:   "let x = (a, ...b) => { }"
1266 PASS Valid:   "function f() { let x = (a, ...b) => { } }"
1267 PASS Valid:   "let x = (a = 20, ...b) => { }"
1268 PASS Valid:   "function f() { let x = (a = 20, ...b) => { } }"
1269 PASS Invalid: "let x = (a = 20, ...b, ...c) => { }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1270 PASS Invalid: "function f() { let x = (a = 20, ...b, ...c) => { } }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1271 PASS Valid:   "let x = (a = 20, ...[...b]) => { }"
1272 PASS Valid:   "function f() { let x = (a = 20, ...[...b]) => { } }"
1273 PASS Valid:   "let x = (a = 20, ...[...[b = 40]]) => { }"
1274 PASS Valid:   "function f() { let x = (a = 20, ...[...[b = 40]]) => { } }"
1275 PASS Valid:   "let x = (a = 20, ...{b}) => { }"
1276 PASS Valid:   "function f() { let x = (a = 20, ...{b}) => { } }"
1277 PASS Valid:   "let x = (a = 20, ...{...b}) => { }"
1278 PASS Valid:   "function f() { let x = (a = 20, ...{...b}) => { } }"
1279 PASS Invalid: "let x = (a = 20, ...{124}) => { }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1280 PASS Invalid: "function f() { let x = (a = 20, ...{124}) => { } }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1281 non-simple parameter list
1282 PASS Invalid: "function foo(...restParam) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1283 PASS Invalid: "function f() { function foo(...restParam) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1284 PASS Invalid: "function foo(...restParam) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1285 PASS Invalid: "function f() { function foo(...restParam) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1286 PASS Invalid: "function foo({x}) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1287 PASS Invalid: "function f() { function foo({x}) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1288 PASS Invalid: "function foo({x}) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1289 PASS Invalid: "function f() { function foo({x}) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1290 PASS Invalid: "function foo(a = 20) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1291 PASS Invalid: "function f() { function foo(a = 20) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1292 PASS Invalid: "function foo(a = 20) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1293 PASS Invalid: "function f() { function foo(a = 20) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1294 PASS Invalid: "function foo({a} = 20) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1295 PASS Invalid: "function f() { function foo({a} = 20) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1296 PASS Invalid: "function foo({a} = 20) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1297 PASS Invalid: "function f() { function foo({a} = 20) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1298 PASS Invalid: "function foo([a]) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1299 PASS Invalid: "function f() { function foo([a]) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1300 PASS Invalid: "function foo([a]) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1301 PASS Invalid: "function f() { function foo([a]) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1302 PASS Invalid: "function foo(foo, bar, a = 25) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1303 PASS Invalid: "function f() { function foo(foo, bar, a = 25) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1304 PASS Invalid: "function foo(foo, bar, a = 25) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1305 PASS Invalid: "function f() { function foo(foo, bar, a = 25) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1306 PASS Invalid: "function foo(foo, bar, baz, ...rest) { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1307 PASS Invalid: "function f() { function foo(foo, bar, baz, ...rest) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1308 PASS Invalid: "function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1309 PASS Invalid: "function f() { function foo(foo, bar, baz, ...rest) { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1310 PASS Invalid: "function foo(a = function() { }) { 'use strict'; a(); }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1311 PASS Invalid: "function f() { function foo(a = function() { }) { 'use strict'; a(); } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1312 PASS Invalid: "function foo(a = function() { }) { 'a'; 'use strict'; a(); }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1313 PASS Invalid: "function f() { function foo(a = function() { }) { 'a'; 'use strict'; a(); } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1314 PASS Invalid: "let foo = (...restParam) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1315 PASS Invalid: "function f() { let foo = (...restParam) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1316 PASS Invalid: "let foo = (...restParam) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1317 PASS Invalid: "function f() { let foo = (...restParam) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1318 PASS Invalid: "let foo = ({x}) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1319 PASS Invalid: "function f() { let foo = ({x}) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1320 PASS Invalid: "let foo = ({x}) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1321 PASS Invalid: "function f() { let foo = ({x}) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1322 PASS Invalid: "let foo = (a = 20) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1323 PASS Invalid: "function f() { let foo = (a = 20) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1324 PASS Invalid: "let foo = (a = 20) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1325 PASS Invalid: "function f() { let foo = (a = 20) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1326 PASS Invalid: "let foo = ({a} = 20) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1327 PASS Invalid: "function f() { let foo = ({a} = 20) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1328 PASS Invalid: "let foo = ({a} = 20) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1329 PASS Invalid: "function f() { let foo = ({a} = 20) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1330 PASS Invalid: "let foo = ([a]) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1331 PASS Invalid: "function f() { let foo = ([a]) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1332 PASS Invalid: "let foo = ([a]) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1333 PASS Invalid: "function f() { let foo = ([a]) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1334 PASS Invalid: "let foo = (foo, bar, a = 25) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1335 PASS Invalid: "function f() { let foo = (foo, bar, a = 25) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1336 PASS Invalid: "let foo = (foo, bar, a = 25) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1337 PASS Invalid: "function f() { let foo = (foo, bar, a = 25) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1338 PASS Invalid: "let foo = (foo, bar, baz, ...rest) => { 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1339 PASS Invalid: "function f() { let foo = (foo, bar, baz, ...rest) => { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1340 PASS Invalid: "let foo = (foo, bar, baz, ...rest) => { 'a'; 'use strict'; }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1341 PASS Invalid: "function f() { let foo = (foo, bar, baz, ...rest) => { 'a'; 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1342 PASS Invalid: "let foo = (a = function() { }) => { 'use strict'; a(); }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1343 PASS Invalid: "function f() { let foo = (a = function() { }) => { 'use strict'; a(); } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1344 PASS Invalid: "let foo = (a = function() { }) => { 'a'; 'use strict'; a(); }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1345 PASS Invalid: "function f() { let foo = (a = function() { }) => { 'a'; 'use strict'; a(); } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1346 PASS Valid:   "function outer() { 'use strict'; function foo(...restParam) {  } }"
1347 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(...restParam) {  } } }"
1348 PASS Valid:   "function outer() { 'use strict'; function foo(a,b,c,...restParam) {  } }"
1349 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a,b,c,...restParam) {  } } }"
1350 PASS Valid:   "function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  } }"
1351 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  } } }"
1352 PASS Valid:   "function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) {  } }"
1353 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) {  } } }"
1354 PASS Valid:   "function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) {  } }"
1355 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) {  } } }"
1356 PASS Valid:   "function outer() { 'use strict'; function foo(a = 20) {  } }"
1357 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a = 20) {  } } }"
1358 PASS Valid:   "function outer() { 'use strict'; function foo(a,b,c,{d} = 20) {  } }"
1359 PASS Valid:   "function f() { function outer() { 'use strict'; function foo(a,b,c,{d} = 20) {  } } }"
1360 PASS Invalid: "function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1361 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(...restParam) { 'use strict';  } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1362 PASS Invalid: "function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1363 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a,b,c,...restParam) {  'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1364 PASS Invalid: "function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1365 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a = 20,b,c,...restParam) {  'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1366 PASS Invalid: "function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1367 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a = 20,{b},c,...restParam) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1368 PASS Invalid: "function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1369 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a = 20,{b},[c] = 5,...restParam) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1370 PASS Invalid: "function outer() { 'use strict'; function foo(a = 20) {  'use strict';} }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1371 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a = 20) {  'use strict';} } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1372 PASS Invalid: "function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1373 PASS Invalid: "function f() { function outer() { 'use strict'; function foo(a,b,c,{d} = 20) { 'use strict'; } } }". Produced the following syntax error: "SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list."
1374 Arrow function
1375 PASS Valid:   "var x = (x) => x;"
1376 PASS Valid:   "function f() { var x = (x) => x; }"
1377 PASS Valid:   "var x = (x, y, z) => x;"
1378 PASS Valid:   "function f() { var x = (x, y, z) => x; }"
1379 PASS Valid:   "var x = ({x}, [y], z) => x;"
1380 PASS Valid:   "function f() { var x = ({x}, [y], z) => x; }"
1381 PASS Valid:   "var x = ({x = 30}, [y], z) => x;"
1382 PASS Valid:   "function f() { var x = ({x = 30}, [y], z) => x; }"
1383 PASS Valid:   "var x = (x = 20) => x;"
1384 PASS Valid:   "function f() { var x = (x = 20) => x; }"
1385 PASS Valid:   "var x = ([x] = 20, y) => x;"
1386 PASS Valid:   "function f() { var x = ([x] = 20, y) => x; }"
1387 PASS Valid:   "var x = ([x = 20] = 20) => x;"
1388 PASS Valid:   "function f() { var x = ([x = 20] = 20) => x; }"
1389 PASS Valid:   "var x = foo => x;"
1390 PASS Valid:   "function f() { var x = foo => x; }"
1391 PASS Valid:   "var x = foo => x => x => x => x;"
1392 PASS Valid:   "function f() { var x = foo => x => x => x => x; }"
1393 PASS Valid:   "var x = foo => x => (x = 20) => (x = 20) => x;"
1394 PASS Valid:   "function f() { var x = foo => x => (x = 20) => (x = 20) => x; }"
1395 PASS Valid:   "var x = foo => x => x => x => {x};"
1396 PASS Valid:   "function f() { var x = foo => x => x => x => {x}; }"
1397 PASS Valid:   "var x = ([x = 25]) => x => x => ({x} = {});"
1398 PASS Valid:   "function f() { var x = ([x = 25]) => x => x => ({x} = {}); }"
1399 PASS Invalid: "var x = foo => x => x => {x} => x;". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1400 PASS Invalid: "function f() { var x = foo => x => x => {x} => x; }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1401 PASS Invalid: "var x = {x} = 20 => x;". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1402 PASS Invalid: "function f() { var x = {x} = 20 => x; }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1403 PASS Invalid: "var x = [x] = 20 => x;". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1404 PASS Invalid: "function f() { var x = [x] = 20 => x; }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1405 PASS Invalid: "var x = [x = 25] = 20 => x;". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1406 PASS Invalid: "function f() { var x = [x = 25] = 20 => x; }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ';' after variable declaration."
1407 PASS Invalid: "var x = ([x = 25]) =>;". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1408 PASS Invalid: "function f() { var x = ([x = 25]) =>; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1409 PASS Invalid: "var x = ([x = 25]) => x =>;". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1410 PASS Invalid: "function f() { var x = ([x = 25]) => x =>; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1411 PASS Invalid: "var x = ([x = 25]) => x => x =>;". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1412 PASS Invalid: "function f() { var x = ([x = 25]) => x => x =>; }". Produced the following syntax error: "SyntaxError: Unexpected token ';'"
1413 PASS Invalid: "var x = ([x = 25]) => x => x => {;". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1414 PASS Invalid: "function f() { var x = ([x = 25]) => x => x => {; }". Produced the following syntax error: "SyntaxError: Unexpected end of script"
1415 PASS Invalid: "var x ==> x;". Produced the following syntax error: "SyntaxError: Unexpected token '=='. Expected ';' after variable declaration."
1416 PASS Invalid: "function f() { var x ==> x; }". Produced the following syntax error: "SyntaxError: Unexpected token '=='. Expected ';' after variable declaration."
1417 PASS Invalid: "var x = x ==> x;". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1418 PASS Invalid: "function f() { var x = x ==> x; }". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1419 PASS Valid:   "foo((x) => x)" with ReferenceError
1420 PASS Valid:   "function f() { foo((x) => x) }"
1421 PASS Valid:   "foo((x, y, z) => x)" with ReferenceError
1422 PASS Valid:   "function f() { foo((x, y, z) => x) }"
1423 PASS Valid:   "foo(({x}, [y], z) => x)" with ReferenceError
1424 PASS Valid:   "function f() { foo(({x}, [y], z) => x) }"
1425 PASS Valid:   "foo(({x = 30}, [y], z) => x)" with ReferenceError
1426 PASS Valid:   "function f() { foo(({x = 30}, [y], z) => x) }"
1427 PASS Valid:   "foo((x = 20) => x)" with ReferenceError
1428 PASS Valid:   "function f() { foo((x = 20) => x) }"
1429 PASS Valid:   "foo(([x] = 20, y) => x)" with ReferenceError
1430 PASS Valid:   "function f() { foo(([x] = 20, y) => x) }"
1431 PASS Valid:   "foo(([x = 20] = 20) => x)" with ReferenceError
1432 PASS Valid:   "function f() { foo(([x = 20] = 20) => x) }"
1433 PASS Valid:   "foo(foo => x)" with ReferenceError
1434 PASS Valid:   "function f() { foo(foo => x) }"
1435 PASS Valid:   "foo(foo => x => x => x => x)" with ReferenceError
1436 PASS Valid:   "function f() { foo(foo => x => x => x => x) }"
1437 PASS Valid:   "foo(foo => x => (x = 20) => (x = 20) => x)" with ReferenceError
1438 PASS Valid:   "function f() { foo(foo => x => (x = 20) => (x = 20) => x) }"
1439 PASS Valid:   "foo(foo => x => x => x => {x})" with ReferenceError
1440 PASS Valid:   "function f() { foo(foo => x => x => x => {x}) }"
1441 PASS Valid:   "foo(([x = 25]) => x => x => ({x} = {}))" with ReferenceError
1442 PASS Valid:   "function f() { foo(([x = 25]) => x => x => ({x} = {})) }"
1443 PASS Invalid: "foo(foo => x => x => {x} => x)". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1444 PASS Invalid: "function f() { foo(foo => x => x => {x} => x) }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1445 PASS Invalid: "foo({x} = 20 => x)". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1446 PASS Invalid: "function f() { foo({x} = 20 => x) }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1447 PASS Invalid: "foo([x] = 20 => x)". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1448 PASS Invalid: "function f() { foo([x] = 20 => x) }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1449 PASS Invalid: "foo([x = 25] = 20 => x)". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1450 PASS Invalid: "function f() { foo([x = 25] = 20 => x) }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ')' to end an argument list."
1451 PASS Invalid: "foo(([x = 25]) =>)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1452 PASS Invalid: "function f() { foo(([x = 25]) =>) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1453 PASS Invalid: "foo(([x = 25]) => x =>)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1454 PASS Invalid: "function f() { foo(([x = 25]) => x =>) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1455 PASS Invalid: "foo(([x = 25]) => x => x =>)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1456 PASS Invalid: "function f() { foo(([x = 25]) => x => x =>) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1457 PASS Invalid: "foo(([x = 25]) => x => x => {)". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1458 PASS Invalid: "function f() { foo(([x = 25]) => x => x => {) }". Produced the following syntax error: "SyntaxError: Unexpected token ')'"
1459 PASS Invalid: "foo(x ==> x)". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1460 PASS Invalid: "function f() { foo(x ==> x) }". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1461 PASS Invalid: "foo(x = x ==> x)". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1462 PASS Invalid: "function f() { foo(x = x ==> x) }". Produced the following syntax error: "SyntaxError: Unexpected token '>'"
1463 PASS Valid:   "var f = cond ? ()=>20 : ()=>20" with ReferenceError
1464 PASS Valid:   "function f() { var f = cond ? ()=>20 : ()=>20 }"
1465 PASS Valid:   "var f = cond ? (x)=>{x} : ()=>20" with ReferenceError
1466 PASS Valid:   "function f() { var f = cond ? (x)=>{x} : ()=>20 }"
1467 PASS Valid:   "var f = cond ? (x)=>x : ()=>{2}" with ReferenceError
1468 PASS Valid:   "function f() { var f = cond ? (x)=>x : ()=>{2} }"
1469 PASS Valid:   "var f = cond ? (x)=>x : x=>2" with ReferenceError
1470 PASS Valid:   "function f() { var f = cond ? (x)=>x : x=>2 }"
1471 PASS Valid:   "var f = cond ? x=>x : x=>2" with ReferenceError
1472 PASS Valid:   "function f() { var f = cond ? x=>x : x=>2 }"
1473 PASS Valid:   "var f = cond ? x=>x*2 : x=>2" with ReferenceError
1474 PASS Valid:   "function f() { var f = cond ? x=>x*2 : x=>2 }"
1475 PASS Valid:   "var f = cond ? x=>x.foo : x=>2" with ReferenceError
1476 PASS Valid:   "function f() { var f = cond ? x=>x.foo : x=>2 }"
1477 PASS Valid:   "var f = cond ? x=>x.foo : x=>x + x + x + x + x + x + x" with ReferenceError
1478 PASS Valid:   "function f() { var f = cond ? x=>x.foo : x=>x + x + x + x + x + x + x }"
1479 PASS Valid:   "var f = cond ? x=>{x.foo } : x=>x + x + x + x + x + x + (x =>x) " with ReferenceError
1480 PASS Valid:   "function f() { var f = cond ? x=>{x.foo } : x=>x + x + x + x + x + x + (x =>x)  }"
1481 PASS Valid:   "var f = (x) => x => (x) => ({y}) => y"
1482 PASS Valid:   "function f() { var f = (x) => x => (x) => ({y}) => y }"
1483 PASS Invalid: "var f = cond ? x=>x.foo; : x=>x + x + x + x + x + x + x". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Expected ':' in ternary operator."
1484 PASS Invalid: "function f() { var f = cond ? x=>x.foo; : x=>x + x + x + x + x + x + x }". Produced the following syntax error: "SyntaxError: Unexpected token ';'. Expected ':' in ternary operator."
1485 PASS Invalid: "var f = cond ? x=>x.foo : : x=>x + x + x + x + x + x + x". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
1486 PASS Invalid: "function f() { var f = cond ? x=>x.foo : : x=>x + x + x + x + x + x + x }". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
1487 PASS Invalid: "var f = cond ? x=>{x.foo :} : x=>x + x + x + x + x + x + x". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
1488 PASS Invalid: "function f() { var f = cond ? x=>{x.foo :} : x=>x + x + x + x + x + x + x }". Produced the following syntax error: "SyntaxError: Unexpected token ':'"
1489 PASS Invalid: "var f = cond ? x=>{x.foo } => : x=>x + x + x + x + x + x + x". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ':' in ternary operator."
1490 PASS Invalid: "function f() { var f = cond ? x=>{x.foo } => : x=>x + x + x + x + x + x + x }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'. Expected ':' in ternary operator."
1491 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => super.foo) { return y(); } }"
1492 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => super.foo) { return y(); } } }"
1493 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => {return super.foo}) { return y(); } }"
1494 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => {return super.foo}) { return y(); } } }"
1495 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => {return () => super.foo}) { return y()(); } }"
1496 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = () => {return () => super.foo}) { return y()(); } } }"
1497 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = (y = () => super.foo) => {return y()}) { return y(); } }"
1498 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { x(y = (y = () => super.foo) => {return y()}) { return y(); } } }"
1499 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { constructor(x = () => super.foo) { super(); this._x_f = x; } x() { return this._x_f(); } }"
1500 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { constructor(x = () => super.foo) { super(); this._x_f = x; } x() { return this._x_f(); } } }"
1501 PASS Valid:   "class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { constructor(x = () => super()) { x(); } x() { return super.foo; } }"
1502 PASS Valid:   "function f() { class C { constructor() { this._x = 45; } get foo() { return this._x;} } class D extends C { constructor(x = () => super()) { x(); } x() { return super.foo; } } }"
1503 PASS Invalid: "let x = (a,a)=>a;". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1504 PASS Invalid: "function f() { let x = (a,a)=>a; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1505 PASS Invalid: "let x = ([a],a)=>a;". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1506 PASS Invalid: "function f() { let x = ([a],a)=>a; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1507 PASS Invalid: "let x = ([a, a])=>a;". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1508 PASS Invalid: "function f() { let x = ([a, a])=>a; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1509 PASS Invalid: "let x = ({a, b:{a}})=>a;". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1510 PASS Invalid: "function f() { let x = ({a, b:{a}})=>a; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1511 PASS Invalid: "let x = (a,a)=>{ a };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1512 PASS Invalid: "function f() { let x = (a,a)=>{ a }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1513 PASS Invalid: "let x = ([a],a)=>{ };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1514 PASS Invalid: "function f() { let x = ([a],a)=>{ }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1515 PASS Invalid: "let x = ([a, a])=>{ };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1516 PASS Invalid: "function f() { let x = ([a, a])=>{ }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1517 PASS Invalid: "let x = (a, ...a)=>{ };". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1518 PASS Invalid: "function f() { let x = (a, ...a)=>{ }; }". Produced the following syntax error: "SyntaxError: Unexpected token '...'"
1519 PASS Invalid: "let x = (b, c, b)=>{ };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in an arrow function."
1520 PASS Invalid: "function f() { let x = (b, c, b)=>{ }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in an arrow function."
1521 PASS Invalid: "let x = (a, b, c, d, {a})=>{ };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1522 PASS Invalid: "function f() { let x = (a, b, c, d, {a})=>{ }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1523 PASS Invalid: "let x = (b = (a,a)=>a, b)=>{ };". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1524 PASS Invalid: "function f() { let x = (b = (a,a)=>a, b)=>{ }; }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in an arrow function."
1525 PASS Invalid: "((a,a)=>a);". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
1526 PASS Invalid: "function f() { ((a,a)=>a); }". Produced the following syntax error: "SyntaxError: Unexpected token '('. Expected a parameter pattern or a ')' in parameter list."
1527 PASS Invalid: "let x = (a)
1528 =>a;". Produced the following syntax error: "SyntaxError: Unexpected token '=>'"
1529 PASS Invalid: "function f() { let x = (a)
1530 =>a; }". Produced the following syntax error: "SyntaxError: Unexpected token '=>'"
1531 PASS Invalid: "({ foo(a,a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1532 PASS Invalid: "function f() { ({ foo(a,a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1533 PASS Invalid: "({ foo(b, c, b){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1534 PASS Invalid: "function f() { ({ foo(b, c, b){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1535 PASS Invalid: "({ *foo(a,a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1536 PASS Invalid: "function f() { ({ *foo(a,a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1537 PASS Invalid: "({ *foo(b, c, b){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1538 PASS Invalid: "function f() { ({ *foo(b, c, b){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1539 PASS Invalid: "({ async foo(a,a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1540 PASS Invalid: "function f() { ({ async foo(a,a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in a method."
1541 PASS Invalid: "({ async foo(b, c, b){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1542 PASS Invalid: "function f() { ({ async foo(b, c, b){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'b' not allowed in a method."
1543 PASS Valid:   "({ foo: function(a,a){} });"
1544 PASS Valid:   "function f() { ({ foo: function(a,a){} }); }"
1545 PASS Valid:   "({ foo: function(b, c, b){} });"
1546 PASS Valid:   "function f() { ({ foo: function(b, c, b){} }); }"
1547 PASS Valid:   "({ foo: function*(a,a){} });"
1548 PASS Valid:   "function f() { ({ foo: function*(a,a){} }); }"
1549 PASS Valid:   "({ foo: function*(b, c, b){} });"
1550 PASS Valid:   "function f() { ({ foo: function*(b, c, b){} }); }"
1551 PASS Valid:   "({ foo: async function(a,a){} });"
1552 PASS Valid:   "function f() { ({ foo: async function(a,a){} }); }"
1553 PASS Valid:   "({ foo: async function(b, c, b){} });"
1554 PASS Valid:   "function f() { ({ foo: async function(b, c, b){} }); }"
1555 PASS Invalid: "({ foo({a},a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1556 PASS Invalid: "function f() { ({ foo({a},a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1557 PASS Invalid: "({ foo(a,{a}){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1558 PASS Invalid: "function f() { ({ foo(a,{a}){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1559 PASS Invalid: "({ foo(a,...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1560 PASS Invalid: "function f() { ({ foo(a,...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1561 PASS Invalid: "({ foo({a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1562 PASS Invalid: "function f() { ({ foo({a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1563 PASS Invalid: "({ foo({...a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1564 PASS Invalid: "function f() { ({ foo({...a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1565 PASS Invalid: "({ *foo({a},a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1566 PASS Invalid: "function f() { ({ *foo({a},a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1567 PASS Invalid: "({ *foo(a,{a}){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1568 PASS Invalid: "function f() { ({ *foo(a,{a}){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1569 PASS Invalid: "({ *foo(a,...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1570 PASS Invalid: "function f() { ({ *foo(a,...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1571 PASS Invalid: "({ *foo({a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1572 PASS Invalid: "function f() { ({ *foo({a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1573 PASS Invalid: "({ *foo({...a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1574 PASS Invalid: "function f() { ({ *foo({...a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1575 PASS Invalid: "({ async foo({a},a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1576 PASS Invalid: "function f() { ({ async foo({a},a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1577 PASS Invalid: "({ async foo(a,{a}){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1578 PASS Invalid: "function f() { ({ async foo(a,{a}){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1579 PASS Invalid: "({ async foo(a,...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1580 PASS Invalid: "function f() { ({ async foo(a,...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with a rest parameter."
1581 PASS Invalid: "({ async foo({a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1582 PASS Invalid: "function f() { ({ async foo({a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1583 PASS Invalid: "({ async foo({...a},...a){} });". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1584 PASS Invalid: "function f() { ({ async foo({...a},...a){} }); }". Produced the following syntax error: "SyntaxError: Duplicate parameter 'a' not allowed in function with destructuring parameters."
1585 PASS Valid:   "({ foo(a, ...b){} });"
1586 PASS Valid:   "function f() { ({ foo(a, ...b){} }); }"
1587 PASS Valid:   "({ foo({a}, ...b){} });"
1588 PASS Valid:   "function f() { ({ foo({a}, ...b){} }); }"
1589 PASS Valid:   "({ foo({a, ...b}){} });"
1590 PASS Valid:   "function f() { ({ foo({a, ...b}){} }); }"
1591 PASS Valid:   "({ foo({b, ...a}, ...c){} });"
1592 PASS Valid:   "function f() { ({ foo({b, ...a}, ...c){} }); }"
1593 Weird things that used to crash.
1594 PASS Invalid: "or ([[{break //(elseifo (a=0;a<2;a++)n=
1595         [[{aFYY sga=
1596         [[{a=Yth FunctionRY&=Ylet 'a'}V a". Produced the following syntax error: "SyntaxError: Unexpected token '//'. Expected a ':' following the property name 'break'."
1597 PASS Invalid: "function f() { or ([[{break //(elseifo (a=0;a<2;a++)n=
1598         [[{aFYY sga=
1599         [[{a=Yth FunctionRY&=Ylet 'a'}V a }". Produced the following syntax error: "SyntaxError: Unexpected token '//'. Expected a ':' following the property name 'break'."
1600 PASS e.line is 1
1601 PASS foo is 'PASS'
1602 PASS bar is 'PASS'
1603 PASS successfullyParsed is true
1604
1605 TEST COMPLETE
1606