es6-syntax.js (1020B)
1 // Test interactions between ES6 generators and not-yet-standard 2 // features. 3 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 } 19 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) {}"); 26 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) {}"); 32 33 // Expression bodies. 34 assertSyntaxError("function* f() yield 7");