| OLD | NEW |
| (Empty) |
| 1 This test checks that the following expressions or statements are valid ECMASCRI
PT 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" | |
| 10 PASS Invalid: "function f() { (a }" | |
| 11 PASS Invalid: "a[5" | |
| 12 PASS Invalid: "function f() { a[5 }" | |
| 13 PASS Invalid: "a[5 + 6" | |
| 14 PASS Invalid: "function f() { a[5 + 6 }" | |
| 15 PASS Invalid: "a." | |
| 16 PASS Invalid: "function f() { a. }" | |
| 17 PASS Invalid: "()" | |
| 18 PASS Invalid: "function f() { () }" | |
| 19 PASS Invalid: "a.'l'" | |
| 20 PASS Invalid: "function f() { a.'l' }" | |
| 21 PASS Valid: "a: +~!new a" | |
| 22 PASS Valid: "function f() { a: +~!new a }" | |
| 23 PASS Invalid: "new -a" | |
| 24 PASS Invalid: "function f() { new -a }" | |
| 25 PASS Valid: "new (-1)" | |
| 26 PASS Valid: "function f() { new (-1) }" | |
| 27 PASS Valid: "a: b: c: new f(x++)++" | |
| 28 PASS Valid: "function f() { a: b: c: new f(x++)++ }" | |
| 29 PASS Valid: "(a)++" | |
| 30 PASS Valid: "function f() { (a)++ }" | |
| 31 PASS Valid: "(1--).x" | |
| 32 PASS Valid: "function f() { (1--).x }" | |
| 33 PASS Invalid: "a-- ++" | |
| 34 PASS Invalid: "function f() { a-- ++ }" | |
| 35 PASS Invalid: "(a:) --b" | |
| 36 PASS Invalid: "function f() { (a:) --b }" | |
| 37 PASS Valid: "++ -- ++ a" | |
| 38 PASS Valid: "function f() { ++ -- ++ a }" | |
| 39 PASS Valid: "++ new new a ++" | |
| 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" | |
| 44 PASS Invalid: "function f() { delete the void }" | |
| 45 PASS Invalid: "(a++" | |
| 46 PASS Invalid: "function f() { (a++ }" | |
| 47 PASS Valid: "++a--" | |
| 48 PASS Valid: "function f() { ++a-- }" | |
| 49 PASS Valid: "++((a))--" | |
| 50 PASS Valid: "function f() { ++((a))-- }" | |
| 51 PASS Valid: "(a.x++)++" | |
| 52 PASS Valid: "function f() { (a.x++)++ }" | |
| 53 PASS Invalid: "1: null" | |
| 54 PASS Invalid: "function f() { 1: null }" | |
| 55 PASS Invalid: "+-!~" | |
| 56 PASS Invalid: "function f() { +-!~ }" | |
| 57 PASS Invalid: "+-!~((" | |
| 58 PASS Invalid: "function f() { +-!~(( }" | |
| 59 PASS Invalid: "a)" | |
| 60 PASS Invalid: "function f() { a) }" | |
| 61 PASS Invalid: "a]" | |
| 62 PASS Invalid: "function f() { a] }" | |
| 63 PASS Invalid: ".l" | |
| 64 PASS Invalid: "function f() { .l }" | |
| 65 PASS Invalid: "1.l" | |
| 66 PASS Invalid: "function f() { 1.l }" | |
| 67 PASS Valid: "1 .l" | |
| 68 PASS Valid: "function f() { 1 .l }" | |
| 69 Binary and conditional operators | |
| 70 PASS Valid: "a + + typeof this" | |
| 71 PASS Valid: "function f() { a + + typeof this }" | |
| 72 PASS Invalid: "a + * b" | |
| 73 PASS Invalid: "function f() { a + * b }" | |
| 74 PASS Invalid: "a ? b" | |
| 75 PASS Invalid: "function f() { a ? b }" | |
| 76 PASS Invalid: "a ? b :" | |
| 77 PASS Invalid: "function f() { a ? b : }" | |
| 78 PASS Invalid: "%a" | |
| 79 PASS Invalid: "function f() { %a }" | |
| 80 PASS Invalid: "a-" | |
| 81 PASS Invalid: "function f() { a- }" | |
| 82 PASS Valid: "a = b ? b = c : d = e" | |
| 83 PASS Valid: "function f() { a = b ? b = c : d = e }" | |
| 84 PASS Valid: "s: a[1].l ? b.l['s'] ? c++ : d : true" | |
| 85 PASS Valid: "function f() { s: a[1].l ? b.l['s'] ? c++ : d : true }" | |
| 86 PASS Valid: "a ? b + 1 ? c + 3 * d.l : d[5][6] : e" | |
| 87 PASS Valid: "function f() { a ? b + 1 ? c + 3 * d.l : d[5][6] : e }" | |
| 88 PASS Valid: "a in b instanceof delete -c" | |
| 89 PASS Valid: "function f() { a in b instanceof delete -c }" | |
| 90 PASS Invalid: "a in instanceof b.l" | |
| 91 PASS Invalid: "function f() { a in instanceof b.l }" | |
| 92 PASS Valid: "- - true % 5" | |
| 93 PASS Valid: "function f() { - - true % 5 }" | |
| 94 FAIL Invalid: "- false = 3" should throw undefined | |
| 95 FAIL Invalid: "function f() { - false = 3 }" should throw undefined | |
| 96 PASS Valid: "a: b: c: (1 + null) = 3" | |
| 97 PASS Valid: "function f() { a: b: c: (1 + null) = 3 }" | |
| 98 PASS Valid: "a[2] = b.l += c /= 4 * 7 ^ !6" | |
| 99 PASS Valid: "function f() { a[2] = b.l += c /= 4 * 7 ^ !6 }" | |
| 100 FAIL Invalid: "a + typeof b += c in d" should throw undefined | |
| 101 FAIL Invalid: "function f() { a + typeof b += c in d }" should throw undefined | |
| 102 FAIL Invalid: "typeof a &= typeof b" should throw undefined | |
| 103 FAIL Invalid: "function f() { typeof a &= typeof b }" should throw undefined | |
| 104 PASS Valid: "a: ((typeof (a))) >>>= a || b.l && c" | |
| 105 PASS Valid: "function f() { a: ((typeof (a))) >>>= a || b.l && c }" | |
| 106 PASS Valid: "a: b: c[a /= f[a %= b]].l[c[x] = 7] -= a ? b <<= f : g" | |
| 107 PASS Valid: "function f() { a: b: c[a /= f[a %= b]].l[c[x] = 7] -= a ? b <<= f
: g }" | |
| 108 PASS Valid: "-void+x['y'].l == x.l != 5 - f[7]" | |
| 109 PASS Valid: "function f() { -void+x['y'].l == x.l != 5 - f[7] }" | |
| 110 Function calls (and new with arguments) | |
| 111 PASS Valid: "a()()()" | |
| 112 PASS Valid: "function f() { a()()() }" | |
| 113 PASS Valid: "s: l: a[2](4 == 6, 5 = 6)(f[4], 6)" | |
| 114 PASS Valid: "function f() { s: l: a[2](4 == 6, 5 = 6)(f[4], 6) }" | |
| 115 PASS Valid: "s: eval(a.apply(), b.call(c[5] - f[7]))" | |
| 116 PASS Valid: "function f() { s: eval(a.apply(), b.call(c[5] - f[7])) }" | |
| 117 PASS Invalid: "a(" | |
| 118 PASS Invalid: "function f() { a( }" | |
| 119 PASS Invalid: "a(5" | |
| 120 PASS Invalid: "function f() { a(5 }" | |
| 121 PASS Invalid: "a(5," | |
| 122 PASS Invalid: "function f() { a(5, }" | |
| 123 PASS Invalid: "a(5,)" | |
| 124 PASS Invalid: "function f() { a(5,) }" | |
| 125 PASS Invalid: "a(5,6" | |
| 126 PASS Invalid: "function f() { a(5,6 }" | |
| 127 PASS Valid: "a(b[7], c <d> e.l, new a() > b)" | |
| 128 PASS Valid: "function f() { a(b[7], c <d> e.l, new a() > b) }" | |
| 129 PASS Invalid: "a(b[5)" | |
| 130 PASS Invalid: "function f() { a(b[5) }" | |
| 131 PASS Invalid: "a(b.)" | |
| 132 PASS Invalid: "function f() { a(b.) }" | |
| 133 PASS Valid: "~new new a(1)(i++)(c[l])" | |
| 134 PASS Valid: "function f() { ~new new a(1)(i++)(c[l]) }" | |
| 135 PASS Invalid: "a(*a)" | |
| 136 PASS Invalid: "function f() { a(*a) }" | |
| 137 PASS Valid: "((((a))((b)()).l))()" | |
| 138 PASS Valid: "function f() { ((((a))((b)()).l))() }" | |
| 139 PASS Valid: "(a)[b + (c) / (d())].l--" | |
| 140 PASS Valid: "function f() { (a)[b + (c) / (d())].l-- }" | |
| 141 PASS Valid: "new (5)" | |
| 142 PASS Valid: "function f() { new (5) }" | |
| 143 PASS Invalid: "new a(5" | |
| 144 PASS Invalid: "function f() { new a(5 }" | |
| 145 PASS Valid: "new (f + 5)(6, (g)() - 'l'() - true(false))" | |
| 146 PASS Valid: "function f() { new (f + 5)(6, (g)() - 'l'() - true(false)) }" | |
| 147 PASS Invalid: "a(.length)" | |
| 148 PASS Invalid: "function f() { a(.length) }" | |
| 149 function declaration and expression | |
| 150 PASS Valid: "function f() {}" | |
| 151 PASS Valid: "function f() { function f() {} }" | |
| 152 PASS Valid: "function f(a,b) {}" | |
| 153 PASS Valid: "function f() { function f(a,b) {} }" | |
| 154 PASS Invalid: "function () {}" | |
| 155 PASS Invalid: "function f() { function () {} }" | |
| 156 PASS Invalid: "function f(a b) {}" | |
| 157 PASS Invalid: "function f() { function f(a b) {} }" | |
| 158 PASS Invalid: "function f(a,) {}" | |
| 159 PASS Invalid: "function f() { function f(a,) {} }" | |
| 160 PASS Invalid: "function f(a," | |
| 161 PASS Invalid: "function f() { function f(a, }" | |
| 162 PASS Invalid: "function f(a, 1) {}" | |
| 163 PASS Invalid: "function f() { function f(a, 1) {} }" | |
| 164 PASS Valid: "function g(arguments, eval) {}" | |
| 165 PASS Valid: "function f() { function g(arguments, eval) {} }" | |
| 166 PASS Valid: "function f() {} + function g() {}" | |
| 167 PASS Valid: "function f() { function f() {} + function g() {} }" | |
| 168 PASS Invalid: "(function a{})" | |
| 169 PASS Invalid: "function f() { (function a{}) }" | |
| 170 PASS Invalid: "(function this(){})" | |
| 171 PASS Invalid: "function f() { (function this(){}) }" | |
| 172 PASS Valid: "(delete new function f(){} + function(a,b){}(5)(6))" | |
| 173 PASS Valid: "function f() { (delete new function f(){} + function(a,b){}(5)(6)
) }" | |
| 174 PASS Valid: "6 - function (m) { function g() {} }" | |
| 175 PASS Valid: "function f() { 6 - function (m) { function g() {} } }" | |
| 176 PASS Invalid: "function l() {" | |
| 177 PASS Invalid: "function f() { function l() { }" | |
| 178 PASS Invalid: "function l++(){}" | |
| 179 PASS Invalid: "function f() { function l++(){} }" | |
| 180 Array and object literal, comma operator | |
| 181 PASS Valid: "[] in [5,6] * [,5,] / [,,5,,] || [a,] && new [,b] % [,,]" | |
| 182 PASS Valid: "function f() { [] in [5,6] * [,5,] / [,,5,,] || [a,] && new [,b]
% [,,] }" | |
| 183 PASS Invalid: "[5," | |
| 184 PASS Invalid: "function f() { [5, }" | |
| 185 PASS Invalid: "[," | |
| 186 PASS Invalid: "function f() { [, }" | |
| 187 PASS Invalid: "(a,)" | |
| 188 PASS Invalid: "function f() { (a,) }" | |
| 189 PASS Valid: "1 + {get get(){}, set set(a){}, get1:4, set1:get-set, }" | |
| 190 PASS Valid: "function f() { 1 + {get get(){}, set set(a){}, get1:4, set1:get-s
et, } }" | |
| 191 PASS Invalid: "1 + {a" | |
| 192 PASS Invalid: "function f() { 1 + {a }" | |
| 193 PASS Invalid: "1 + {a:" | |
| 194 PASS Invalid: "function f() { 1 + {a: }" | |
| 195 PASS Invalid: "1 + {get l(" | |
| 196 PASS Invalid: "function f() { 1 + {get l( }" | |
| 197 PASS Invalid: ",a" | |
| 198 PASS Invalid: "function f() { ,a }" | |
| 199 PASS Valid: "(4,(5,a(3,4))),f[4,a-6]" | |
| 200 PASS Valid: "function f() { (4,(5,a(3,4))),f[4,a-6] }" | |
| 201 PASS Invalid: "(,f)" | |
| 202 PASS Invalid: "function f() { (,f) }" | |
| 203 PASS Invalid: "a,,b" | |
| 204 PASS Invalid: "function f() { a,,b }" | |
| 205 PASS Invalid: "a ? b, c : d" | |
| 206 PASS Invalid: "function f() { a ? b, c : d }" | |
| 207 simple statements | |
| 208 PASS Valid: "{ }" | |
| 209 PASS Valid: "function f() { { } }" | |
| 210 PASS Invalid: "{ { }" | |
| 211 PASS Invalid: "function f() { { { } }" | |
| 212 PASS Valid: "{ ; ; ; }" | |
| 213 PASS Valid: "function f() { { ; ; ; } }" | |
| 214 PASS Valid: "a: { ; }" | |
| 215 PASS Valid: "function f() { a: { ; } }" | |
| 216 PASS Invalid: "{ a: }" | |
| 217 PASS Invalid: "function f() { { a: } }" | |
| 218 PASS Valid: "{} f; { 6 + f() }" | |
| 219 PASS Valid: "function f() { {} f; { 6 + f() } }" | |
| 220 PASS Valid: "{ a[5],6; {} ++b-new (-5)() } c().l++" | |
| 221 PASS Valid: "function f() { { a[5],6; {} ++b-new (-5)() } c().l++ }" | |
| 222 PASS Valid: "{ l1: l2: l3: { this } a = 32 ; { i++ ; { { { } } ++i } } }" | |
| 223 PASS Valid: "function f() { { l1: l2: l3: { this } a = 32 ; { i++ ; { { { } }
++i } } } }" | |
| 224 PASS Valid: "if (a) ;" | |
| 225 PASS Valid: "function f() { if (a) ; }" | |
| 226 PASS Invalid: "{ if (a) }" | |
| 227 PASS Invalid: "function f() { { if (a) } }" | |
| 228 PASS Invalid: "if a {}" | |
| 229 PASS Invalid: "function f() { if a {} }" | |
| 230 PASS Invalid: "if (a" | |
| 231 PASS Invalid: "function f() { if (a }" | |
| 232 PASS Invalid: "if (a { }" | |
| 233 PASS Invalid: "function f() { if (a { } }" | |
| 234 PASS Valid: "x: s: if (a) ; else b" | |
| 235 PASS Valid: "function f() { x: s: if (a) ; else b }" | |
| 236 PASS Invalid: "else {}" | |
| 237 PASS Invalid: "function f() { else {} }" | |
| 238 PASS Valid: "if (a) if (b) y; else {} else ;" | |
| 239 PASS Valid: "function f() { if (a) if (b) y; else {} else ; }" | |
| 240 PASS Invalid: "if (a) {} else x; else" | |
| 241 PASS Invalid: "function f() { if (a) {} else x; else }" | |
| 242 PASS Invalid: "if (a) { else }" | |
| 243 PASS Invalid: "function f() { if (a) { else } }" | |
| 244 PASS Valid: "if (a.l + new b()) 4 + 5 - f()" | |
| 245 PASS Valid: "function f() { if (a.l + new b()) 4 + 5 - f() }" | |
| 246 PASS Valid: "if (a) with (x) ; else with (y) ;" | |
| 247 PASS Valid: "function f() { if (a) with (x) ; else with (y) ; }" | |
| 248 PASS Invalid: "with a.b { }" | |
| 249 PASS Invalid: "function f() { with a.b { } }" | |
| 250 PASS Valid: "while (a() - new b) ;" | |
| 251 PASS Valid: "function f() { while (a() - new b) ; }" | |
| 252 PASS Invalid: "while a {}" | |
| 253 PASS Invalid: "function f() { while a {} }" | |
| 254 PASS Valid: "do ; while(0) i++" | |
| 255 PASS Valid: "function f() { do ; while(0) i++ }" | |
| 256 PASS Valid: "do if (a) x; else y; while(z)" | |
| 257 PASS Valid: "function f() { do if (a) x; else y; while(z) }" | |
| 258 PASS Invalid: "do g; while 4" | |
| 259 PASS Invalid: "function f() { do g; while 4 }" | |
| 260 PASS Invalid: "do g; while ((4)" | |
| 261 PASS Invalid: "function f() { do g; while ((4) }" | |
| 262 PASS Valid: "{ { do do do ; while(0) while(0) while(0) } }" | |
| 263 PASS Valid: "function f() { { { do do do ; while(0) while(0) while(0) } } }" | |
| 264 PASS Valid: "do while (0) if (a) {} else y; while(0)" | |
| 265 PASS Valid: "function f() { do while (0) if (a) {} else y; while(0) }" | |
| 266 PASS Valid: "if (a) while (b) if (c) with(d) {} else e; else f" | |
| 267 PASS Valid: "function f() { if (a) while (b) if (c) with(d) {} else e; else f
}" | |
| 268 PASS Invalid: "break ; break your_limits ; continue ; continue living ; debugger
" | |
| 269 PASS Invalid: "function f() { break ; break your_limits ; continue ; continue li
ving ; debugger }" | |
| 270 PASS Invalid: "debugger X" | |
| 271 PASS Invalid: "function f() { debugger X }" | |
| 272 PASS Invalid: "break 0.2" | |
| 273 PASS Invalid: "function f() { break 0.2 }" | |
| 274 PASS Invalid: "continue a++" | |
| 275 PASS Invalid: "function f() { continue a++ }" | |
| 276 PASS Invalid: "continue (my_friend)" | |
| 277 PASS Invalid: "function f() { continue (my_friend) }" | |
| 278 PASS Valid: "while (1) break" | |
| 279 PASS Valid: "function f() { while (1) break }" | |
| 280 PASS Valid: "do if (a) with (b) continue; else debugger; while (false)" | |
| 281 PASS Valid: "function f() { do if (a) with (b) continue; else debugger; while
(false) }" | |
| 282 PASS Invalid: "do if (a) while (false) else debugger" | |
| 283 PASS Invalid: "function f() { do if (a) while (false) else debugger }" | |
| 284 PASS Invalid: "while if (a) ;" | |
| 285 PASS Invalid: "function f() { while if (a) ; }" | |
| 286 PASS Valid: "if (a) function f() {} else function g() {}" | |
| 287 PASS Valid: "function f() { if (a) function f() {} else function g() {} }" | |
| 288 PASS Valid: "if (a()) while(0) function f() {} else function g() {}" | |
| 289 PASS Valid: "function f() { if (a()) while(0) function f() {} else function g(
) {} }" | |
| 290 PASS Invalid: "if (a()) function f() { else function g() }" | |
| 291 PASS Invalid: "function f() { if (a()) function f() { else function g() } }" | |
| 292 PASS Invalid: "if (a) if (b) ; else function f {}" | |
| 293 PASS Invalid: "function f() { if (a) if (b) ; else function f {} }" | |
| 294 PASS Invalid: "if (a) if (b) ; else function (){}" | |
| 295 PASS Invalid: "function f() { if (a) if (b) ; else function (){} }" | |
| 296 PASS Valid: "throw a" | |
| 297 PASS Valid: "function f() { throw a }" | |
| 298 PASS Valid: "throw a + b in void c" | |
| 299 PASS Valid: "function f() { throw a + b in void c }" | |
| 300 PASS Invalid: "throw" | |
| 301 PASS Invalid: "function f() { throw }" | |
| 302 var and const statements | |
| 303 PASS Valid: "var a, b = null" | |
| 304 PASS Valid: "function f() { var a, b = null }" | |
| 305 PASS Valid: "const a = 5, b, c" | |
| 306 PASS Valid: "function f() { const a = 5, b, c }" | |
| 307 PASS Invalid: "var" | |
| 308 PASS Invalid: "function f() { var }" | |
| 309 PASS Invalid: "var = 7" | |
| 310 PASS Invalid: "function f() { var = 7 }" | |
| 311 PASS Invalid: "var c (6)" | |
| 312 PASS Invalid: "function f() { var c (6) }" | |
| 313 PASS Valid: "if (a) var a,b; else const b, c" | |
| 314 PASS Valid: "function f() { if (a) var a,b; else const b, c }" | |
| 315 PASS Invalid: "var 5 = 6" | |
| 316 PASS Invalid: "function f() { var 5 = 6 }" | |
| 317 PASS Valid: "while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h" | |
| 318 PASS Valid: "function f() { while (0) var a, b, c=6, d, e, f=5*6, g=f*h, h }" | |
| 319 PASS Invalid: "var a = if (b) { c }" | |
| 320 PASS Invalid: "function f() { var a = if (b) { c } }" | |
| 321 PASS Invalid: "var a = var b" | |
| 322 PASS Invalid: "function f() { var a = var b }" | |
| 323 PASS Valid: "const a = b += c, a, a, a = (b - f())" | |
| 324 PASS Valid: "function f() { const a = b += c, a, a, a = (b - f()) }" | |
| 325 PASS Invalid: "var a %= b | 5" | |
| 326 PASS Invalid: "function f() { var a %= b | 5 }" | |
| 327 PASS Invalid: "var (a) = 5" | |
| 328 PASS Invalid: "function f() { var (a) = 5 }" | |
| 329 PASS Invalid: "var a = (4, b = 6" | |
| 330 PASS Invalid: "function f() { var a = (4, b = 6 }" | |
| 331 PASS Invalid: "const 'l' = 3" | |
| 332 PASS Invalid: "function f() { const 'l' = 3 }" | |
| 333 PASS Invalid: "var var = 3" | |
| 334 PASS Invalid: "function f() { var var = 3 }" | |
| 335 PASS Valid: "var varr = 3 in 1" | |
| 336 PASS Valid: "function f() { var varr = 3 in 1 }" | |
| 337 PASS Valid: "const a, a, a = void 7 - typeof 8, a = 8" | |
| 338 PASS Valid: "function f() { const a, a, a = void 7 - typeof 8, a = 8 }" | |
| 339 PASS Valid: "const x_x = 6 /= 7 ? e : f" | |
| 340 PASS Valid: "function f() { const x_x = 6 /= 7 ? e : f }" | |
| 341 PASS Invalid: "var a = ?" | |
| 342 PASS Invalid: "function f() { var a = ? }" | |
| 343 PASS Invalid: "const a = *7" | |
| 344 PASS Invalid: "function f() { const a = *7 }" | |
| 345 PASS Invalid: "var a = :)" | |
| 346 PASS Invalid: "function f() { var a = :) }" | |
| 347 PASS Valid: "var a = a in b in c instanceof d" | |
| 348 PASS Valid: "function f() { var a = a in b in c instanceof d }" | |
| 349 PASS Invalid: "var a = b ? c, b" | |
| 350 PASS Invalid: "function f() { var a = b ? c, b }" | |
| 351 PASS Invalid: "const a = b : c" | |
| 352 PASS Invalid: "function f() { const a = b : c }" | |
| 353 for statement | |
| 354 PASS Valid: "for ( ; ; ) { break }" | |
| 355 PASS Valid: "function f() { for ( ; ; ) { break } }" | |
| 356 PASS Valid: "for ( a ; ; ) { break }" | |
| 357 PASS Valid: "function f() { for ( a ; ; ) { break } }" | |
| 358 PASS Valid: "for ( ; a ; ) { break }" | |
| 359 PASS Valid: "function f() { for ( ; a ; ) { break } }" | |
| 360 PASS Valid: "for ( ; ; a ) { break }" | |
| 361 PASS Valid: "function f() { for ( ; ; a ) { break } }" | |
| 362 PASS Valid: "for ( a ; a ; ) break" | |
| 363 PASS Valid: "function f() { for ( a ; a ; ) break }" | |
| 364 PASS Valid: "for ( a ; ; a ) break" | |
| 365 PASS Valid: "function f() { for ( a ; ; a ) break }" | |
| 366 PASS Valid: "for ( ; a ; a ) break" | |
| 367 PASS Valid: "function f() { for ( ; a ; a ) break }" | |
| 368 PASS Invalid: "for () { }" | |
| 369 PASS Invalid: "function f() { for () { } }" | |
| 370 PASS Invalid: "for ( a ) { }" | |
| 371 PASS Invalid: "function f() { for ( a ) { } }" | |
| 372 PASS Invalid: "for ( ; ) ;" | |
| 373 PASS Invalid: "function f() { for ( ; ) ; }" | |
| 374 PASS Invalid: "for a ; b ; c { }" | |
| 375 PASS Invalid: "function f() { for a ; b ; c { } }" | |
| 376 PASS Invalid: "for (a ; { }" | |
| 377 PASS Invalid: "function f() { for (a ; { } }" | |
| 378 PASS Invalid: "for ( a ; ) ;" | |
| 379 PASS Invalid: "function f() { for ( a ; ) ; }" | |
| 380 PASS Invalid: "for ( ; a ) break" | |
| 381 PASS Invalid: "function f() { for ( ; a ) break }" | |
| 382 PASS Valid: "for (var a, b ; ; ) { break } " | |
| 383 PASS Valid: "function f() { for (var a, b ; ; ) { break } }" | |
| 384 PASS Valid: "for (var a = b, b = a ; ; ) break" | |
| 385 PASS Valid: "function f() { for (var a = b, b = a ; ; ) break }" | |
| 386 PASS Valid: "for (var a = b, c, d, b = a ; x in b ; ) { break }" | |
| 387 PASS Valid: "function f() { for (var a = b, c, d, b = a ; x in b ; ) { break }
}" | |
| 388 PASS Valid: "for (var a = b, c, d ; ; 1 in a()) break" | |
| 389 PASS Valid: "function f() { for (var a = b, c, d ; ; 1 in a()) break }" | |
| 390 PASS Invalid: "for ( ; var a ; ) break" | |
| 391 PASS Invalid: "function f() { for ( ; var a ; ) break }" | |
| 392 FAIL Invalid: "for (const a; ; ) break" should throw undefined | |
| 393 FAIL Invalid: "function f() { for (const a; ; ) break }" should throw undefined | |
| 394 PASS Invalid: "for ( %a ; ; ) { }" | |
| 395 PASS Invalid: "function f() { for ( %a ; ; ) { } }" | |
| 396 PASS Valid: "for (a in b) break" | |
| 397 PASS Valid: "function f() { for (a in b) break }" | |
| 398 PASS Valid: "for (a() in b) break" | |
| 399 PASS Valid: "function f() { for (a() in b) break }" | |
| 400 PASS Valid: "for (a().l[4] in b) break" | |
| 401 PASS Valid: "function f() { for (a().l[4] in b) break }" | |
| 402 PASS Valid: "for (new a in b in c in d) break" | |
| 403 PASS Valid: "function f() { for (new a in b in c in d) break }" | |
| 404 PASS Valid: "for (new new new a in b) break" | |
| 405 PASS Valid: "function f() { for (new new new a in b) break }" | |
| 406 FAIL Invalid: "for (delete new a() in b) break" should throw undefined | |
| 407 FAIL Invalid: "function f() { for (delete new a() in b) break }" should throw un
defined | |
| 408 FAIL Invalid: "for (a * a in b) break" should throw undefined | |
| 409 FAIL Invalid: "function f() { for (a * a in b) break }" should throw undefined | |
| 410 PASS Valid: "for ((a * a) in b) break" | |
| 411 PASS Valid: "function f() { for ((a * a) in b) break }" | |
| 412 FAIL Invalid: "for (a++ in b) break" should throw undefined | |
| 413 FAIL Invalid: "function f() { for (a++ in b) break }" should throw undefined | |
| 414 PASS Valid: "for ((a++) in b) break" | |
| 415 PASS Valid: "function f() { for ((a++) in b) break }" | |
| 416 FAIL Invalid: "for (++a in b) break" should throw undefined | |
| 417 FAIL Invalid: "function f() { for (++a in b) break }" should throw undefined | |
| 418 PASS Valid: "for ((++a) in b) break" | |
| 419 PASS Valid: "function f() { for ((++a) in b) break }" | |
| 420 FAIL Invalid: "for (a, b in c) break" should throw undefined | |
| 421 FAIL Invalid: "function f() { for (a, b in c) break }" should throw undefined | |
| 422 PASS Invalid: "for (a,b in c ;;) break" | |
| 423 PASS Invalid: "function f() { for (a,b in c ;;) break }" | |
| 424 PASS Valid: "for (a,(b in c) ;;) break" | |
| 425 PASS Valid: "function f() { for (a,(b in c) ;;) break }" | |
| 426 PASS Valid: "for ((a, b) in c) break" | |
| 427 PASS Valid: "function f() { for ((a, b) in c) break }" | |
| 428 FAIL Invalid: "for (a ? b : c in c) break" should throw undefined | |
| 429 FAIL Invalid: "function f() { for (a ? b : c in c) break }" should throw undefin
ed | |
| 430 PASS Valid: "for ((a ? b : c) in c) break" | |
| 431 PASS Valid: "function f() { for ((a ? b : c) in c) break }" | |
| 432 PASS Valid: "for (var a in b in c) break" | |
| 433 PASS Valid: "function f() { for (var a in b in c) break }" | |
| 434 PASS Valid: "for (var a = 5 += 6 in b) break" | |
| 435 PASS Valid: "function f() { for (var a = 5 += 6 in b) break }" | |
| 436 PASS Invalid: "for (var a += 5 in b) break" | |
| 437 PASS Invalid: "function f() { for (var a += 5 in b) break }" | |
| 438 PASS Invalid: "for (var a = in b) break" | |
| 439 PASS Invalid: "function f() { for (var a = in b) break }" | |
| 440 PASS Invalid: "for (var a, b in b) break" | |
| 441 PASS Invalid: "function f() { for (var a, b in b) break }" | |
| 442 PASS Invalid: "for (var a = -6, b in b) break" | |
| 443 PASS Invalid: "function f() { for (var a = -6, b in b) break }" | |
| 444 PASS Invalid: "for (var a, b = 8 in b) break" | |
| 445 PASS Invalid: "function f() { for (var a, b = 8 in b) break }" | |
| 446 PASS Valid: "for (var a = (b in c) in d) break" | |
| 447 PASS Valid: "function f() { for (var a = (b in c) in d) break }" | |
| 448 PASS Invalid: "for (var a = (b in c in d) break" | |
| 449 PASS Invalid: "function f() { for (var a = (b in c in d) break }" | |
| 450 PASS Invalid: "for (var (a) in b) { }" | |
| 451 PASS Invalid: "function f() { for (var (a) in b) { } }" | |
| 452 PASS Valid: "for (var a = 7, b = c < d >= d ; f()[6]++ ; --i()[1]++ ) {}" | |
| 453 PASS Valid: "function f() { for (var a = 7, b = c < d >= d ; f()[6]++ ; --i()[
1]++ ) {} }" | |
| 454 try statement | |
| 455 PASS Invalid: "try { break } catch(e) {}" | |
| 456 PASS Invalid: "function f() { try { break } catch(e) {} }" | |
| 457 PASS Valid: "try {} finally { c++ }" | |
| 458 PASS Valid: "function f() { try {} finally { c++ } }" | |
| 459 PASS Valid: "try { with (x) { } } catch(e) {} finally { if (a) ; }" | |
| 460 PASS Valid: "function f() { try { with (x) { } } catch(e) {} finally { if (a)
; } }" | |
| 461 PASS Invalid: "try {}" | |
| 462 PASS Invalid: "function f() { try {} }" | |
| 463 PASS Invalid: "catch(e) {}" | |
| 464 PASS Invalid: "function f() { catch(e) {} }" | |
| 465 PASS Invalid: "finally {}" | |
| 466 PASS Invalid: "function f() { finally {} }" | |
| 467 PASS Invalid: "try a; catch(e) {}" | |
| 468 PASS Invalid: "function f() { try a; catch(e) {} }" | |
| 469 PASS Invalid: "try {} catch(e) a()" | |
| 470 PASS Invalid: "function f() { try {} catch(e) a() }" | |
| 471 PASS Invalid: "try {} finally a()" | |
| 472 PASS Invalid: "function f() { try {} finally a() }" | |
| 473 PASS Invalid: "try {} catch(e)" | |
| 474 PASS Invalid: "function f() { try {} catch(e) }" | |
| 475 PASS Invalid: "try {} finally" | |
| 476 PASS Invalid: "function f() { try {} finally }" | |
| 477 PASS Invalid: "try {} finally {} catch(e) {}" | |
| 478 PASS Invalid: "function f() { try {} finally {} catch(e) {} }" | |
| 479 PASS Invalid: "try {} catch (...) {}" | |
| 480 PASS Invalid: "function f() { try {} catch (...) {} }" | |
| 481 PASS Invalid: "try {} catch {}" | |
| 482 PASS Invalid: "function f() { try {} catch {} }" | |
| 483 PASS Valid: "if (a) try {} finally {} else b;" | |
| 484 PASS Valid: "function f() { if (a) try {} finally {} else b; }" | |
| 485 PASS Valid: "if (--a()) do with(1) try {} catch(ke) { f() ; g() } while (a in
b) else {}" | |
| 486 PASS Valid: "function f() { if (--a()) do with(1) try {} catch(ke) { f() ; g()
} while (a in b) else {} }" | |
| 487 PASS Invalid: "if (a) try {} else b; catch (e) { }" | |
| 488 PASS Invalid: "function f() { if (a) try {} else b; catch (e) { } }" | |
| 489 PASS Invalid: "try { finally {}" | |
| 490 PASS Invalid: "function f() { try { finally {} }" | |
| 491 switch statement | |
| 492 PASS Valid: "switch (a) {}" | |
| 493 PASS Valid: "function f() { switch (a) {} }" | |
| 494 PASS Invalid: "switch () {}" | |
| 495 PASS Invalid: "function f() { switch () {} }" | |
| 496 PASS Invalid: "case 5:" | |
| 497 PASS Invalid: "function f() { case 5: }" | |
| 498 PASS Invalid: "default:" | |
| 499 PASS Invalid: "function f() { default: }" | |
| 500 PASS Invalid: "switch (a) b;" | |
| 501 PASS Invalid: "function f() { switch (a) b; }" | |
| 502 PASS Invalid: "switch (a) case 3: b;" | |
| 503 PASS Invalid: "function f() { switch (a) case 3: b; }" | |
| 504 PASS Valid: "switch (f()) { case 5 * f(): default: case '6' - 9: ++i }" | |
| 505 PASS Valid: "function f() { switch (f()) { case 5 * f(): default: case '6' - 9
: ++i } }" | |
| 506 PASS Invalid: "switch (true) { default: case 6: default: }" | |
| 507 PASS Invalid: "function f() { switch (true) { default: case 6: default: } }" | |
| 508 PASS Invalid: "switch (l) { f(); }" | |
| 509 PASS Invalid: "function f() { switch (l) { f(); } }" | |
| 510 PASS Invalid: "switch (l) { case 1: ; a: case 5: }" | |
| 511 PASS Invalid: "function f() { switch (l) { case 1: ; a: case 5: } }" | |
| 512 PASS Valid: "switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f }" | |
| 513 PASS Valid: "function f() { switch (g() - h[5].l) { case 1 + 6: a: b: c: ++f }
}" | |
| 514 PASS Invalid: "switch (g) { case 1: a: }" | |
| 515 PASS Invalid: "function f() { switch (g) { case 1: a: } }" | |
| 516 PASS Invalid: "switch (g) { case 1: a: default: }" | |
| 517 PASS Invalid: "function f() { switch (g) { case 1: a: default: } }" | |
| 518 PASS Invalid: "switch g { case 1: l() }" | |
| 519 PASS Invalid: "function f() { switch g { case 1: l() } }" | |
| 520 PASS Invalid: "switch (g) { case 1:" | |
| 521 PASS Invalid: "function f() { switch (g) { case 1: }" | |
| 522 PASS Valid: "switch (l) { case a = b ? c : d : }" | |
| 523 PASS Valid: "function f() { switch (l) { case a = b ? c : d : } }" | |
| 524 PASS Valid: "switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 : { } : }" | |
| 525 PASS Valid: "function f() { switch (sw) { case a ? b - 7[1] ? [c,,] : d = 6 :
{ } : } }" | |
| 526 PASS Invalid: "switch (l) { case b ? c : }" | |
| 527 PASS Invalid: "function f() { switch (l) { case b ? c : } }" | |
| 528 PASS Valid: "switch (l) { case 1: a: with(g) switch (g) { case 2: default: } d
efault: }" | |
| 529 PASS Valid: "function f() { switch (l) { case 1: a: with(g) switch (g) { case
2: default: } default: } }" | |
| 530 PASS Invalid: "switch (4 - ) { }" | |
| 531 PASS Invalid: "function f() { switch (4 - ) { } }" | |
| 532 PASS Invalid: "switch (l) { default case: 5; }" | |
| 533 PASS Invalid: "function f() { switch (l) { default case: 5; } }" | |
| 534 PASS Invalid: "L: L: ;" | |
| 535 PASS Invalid: "function f() { L: L: ; }" | |
| 536 PASS Invalid: "L: L1: L: ;" | |
| 537 PASS Invalid: "function f() { L: L1: L: ; }" | |
| 538 PASS Invalid: "L: L1: L2: L3: L4: L: ;" | |
| 539 PASS Invalid: "function f() { L: L1: L2: L3: L4: L: ; }" | |
| 540 PASS Invalid: "for(var a,b 'this shouldn't be allowed' false ; ) ;" | |
| 541 PASS Invalid: "function f() { for(var a,b 'this shouldn't be allowed' false ; )
; }" | |
| 542 PASS Invalid: "for(var a,b '" | |
| 543 PASS Invalid: "function f() { for(var a,b ' }" | |
| 544 PASS Valid: "function __proto__(){}" | |
| 545 PASS Valid: "function f() { function __proto__(){} }" | |
| 546 PASS Valid: "(function __proto__(){})" | |
| 547 PASS Valid: "function f() { (function __proto__(){}) }" | |
| 548 PASS Valid: "'use strict'; function __proto__(){}" | |
| 549 PASS Valid: "function f() { 'use strict'; function __proto__(){} }" | |
| 550 PASS Valid: "'use strict'; (function __proto__(){})" | |
| 551 PASS Valid: "function f() { 'use strict'; (function __proto__(){}) }" | |
| 552 PASS Valid: "if (0) $foo; " | |
| 553 PASS Valid: "function f() { if (0) $foo; }" | |
| 554 PASS Valid: "if (0) _foo; " | |
| 555 PASS Valid: "function f() { if (0) _foo; }" | |
| 556 PASS Valid: "if (0) foo$; " | |
| 557 PASS Valid: "function f() { if (0) foo$; }" | |
| 558 PASS Valid: "if (0) foo_; " | |
| 559 PASS Valid: "function f() { if (0) foo_; }" | |
| 560 PASS Valid: "if (0) obj.$foo; " | |
| 561 PASS Valid: "function f() { if (0) obj.$foo; }" | |
| 562 PASS Valid: "if (0) obj._foo; " | |
| 563 PASS Valid: "function f() { if (0) obj._foo; }" | |
| 564 PASS Valid: "if (0) obj.foo$; " | |
| 565 PASS Valid: "function f() { if (0) obj.foo$; }" | |
| 566 PASS Valid: "if (0) obj.foo_; " | |
| 567 PASS Valid: "function f() { if (0) obj.foo_; }" | |
| 568 PASS Valid: "if (0) obj.foo\u03bb; " | |
| 569 PASS Valid: "function f() { if (0) obj.foo\u03bb; }" | |
| 570 PASS Valid: "if (0) new a(b+c).d = 5" | |
| 571 PASS Valid: "function f() { if (0) new a(b+c).d = 5 }" | |
| 572 PASS Valid: "if (0) new a(b+c) = 5" | |
| 573 PASS Valid: "function f() { if (0) new a(b+c) = 5 }" | |
| 574 PASS Valid: "([1 || 1].a = 1)" | |
| 575 PASS Valid: "function f() { ([1 || 1].a = 1) }" | |
| 576 PASS Valid: "({a: 1 || 1}.a = 1)" | |
| 577 PASS Valid: "function f() { ({a: 1 || 1}.a = 1) }" | |
| 578 PASS Invalid: "var a.b = c" | |
| 579 PASS Invalid: "function f() { var a.b = c }" | |
| 580 PASS Invalid: "var a.b;" | |
| 581 PASS Invalid: "function f() { var a.b; }" | |
| 582 FAIL e.line should be 1 (of type number). Was undefined (of type undefined). | |
| 583 PASS foo is 'PASS' | |
| 584 PASS bar is 'PASS' | |
| 585 PASS successfullyParsed is true | |
| 586 | |
| 587 TEST COMPLETE | |
| 588 | |
| OLD | NEW |