| function testSyntaxError(script, message) { |
| var error = null; |
| try { |
| eval(script); |
| } catch (e) { |
| error = e; |
| } |
| if (!error) |
| throw new Error("Expected syntax error not thrown"); |
| |
| if (String(error) !== message) |
| throw new Error("Bad error: " + String(error)); |
| } |
| |
| testSyntaxError(` |
| class Base { |
| hello() |
| { |
| print("Hello"); |
| } |
| |
| *ok() |
| { |
| super.hello(); |
| } |
| } |
| |
| class Hello extends Base { |
| *gen() |
| { |
| super(); |
| } |
| } |
| `, `SyntaxError: super is not valid in this context.`); |
| |
| |
| testSyntaxError(` |
| function *hello() |
| { |
| super.hello(); |
| } |
| `, `SyntaxError: super is not valid in this context.`); |