Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 // Test interactions between ES6 generators and not-yet-standard
2 // features.
4 function assertSyntaxError(str) {
5 var msg;
6 var evil = eval;
7 try {
8 // Non-direct eval.
9 evil(str);
10 } catch (exc) {
11 if (exc instanceof SyntaxError)
12 return;
13 msg = "Assertion failed: expected SyntaxError, got " + exc;
14 }
15 if (msg === undefined)
16 msg = "Assertion failed: expected SyntaxError, but no exception thrown";
17 throw new Error(msg + " - " + str);
18 }
20 // Destructuring binding.
21 assertSyntaxError("function* f(x = yield) {}");
22 assertSyntaxError("function* f(x = yield 17) {}");
23 assertSyntaxError("function* f([yield]) {}");
24 assertSyntaxError("function* f({ yield }) {}");
25 assertSyntaxError("function* f(...yield) {}");
27 // For each.
28 assertSyntaxError("for yield");
29 assertSyntaxError("for yield (;;) {}");
30 assertSyntaxError("for yield (x of y) {}");
31 assertSyntaxError("for yield (var i in o) {}");
33 // Expression bodies.
34 assertSyntaxError("function* f() yield 7");