| /* |
| * Any copyright is dedicated to the Public Domain. |
| * http://creativecommons.org/licenses/publicdomain/ |
| */ |
| |
| //----------------------------------------------------------------------------- |
| var BUGNUMBER = 1204027; |
| var summary = |
| "Escape sequences aren't allowed in bolded grammar tokens (that is, in " + |
| "keywords, possibly contextual keywords)"; |
| |
| print(BUGNUMBER + ": " + summary); |
| |
| /************** |
| * BEGIN TEST * |
| **************/ |
| |
| function memberVariants(code) |
| { |
| return ["(class { constructor() {} " + code + " });", |
| "({ " + code + " })"]; |
| } |
| |
| var badScripts = |
| [ |
| "class { st\\u0061tic m() { return 0; } }", |
| "class { st\\u0061tic get foo() { return 0; } }", |
| "class { st\\u0061tic set foo(v) {} }", |
| "class { st\\u0061tic get ['hi']() { return 0; } }", |
| "class { st\\u0061tic set ['hi'](v) {} }", |
| "class { st\\u0061tic get 'hi'() { return 0; } }", |
| "class { st\\u0061tic set 'hi'(v) {} }", |
| "class { st\\u0061tic get 42() { return 0; } }", |
| "class { st\\u0061tic set 42(v) {} }", |
| ...memberVariants("\\u0067et foo() { return 0; }"), |
| ...memberVariants("\\u0073et foo() {}"), |
| ...memberVariants("g\\u0065t foo() { return 0; }"), |
| ...memberVariants("s\\u0065t foo() {}"), |
| ...memberVariants("g\\u0065t ['hi']() { return 0; }"), |
| ...memberVariants("s\\u0065t ['hi']() {}"), |
| ...memberVariants("g\\u0065t 'hi'() { return 0; }"), |
| ...memberVariants("s\\u0065t 'hi'() {}"), |
| ...memberVariants("g\\u0065t 42() { return 0; }"), |
| ...memberVariants("s\\u0065t 42() {}"), |
| "for (var foo o\\u0066 [1]) ;", |
| "for (var foo \\u006ff [1]) ;", |
| "for (var foo i\\u006e [1]) ;", |
| "for (var foo \\u0069n [1]) ;", |
| "function f() { return n\\u0065w.target }", |
| "function f() { return \\u006eew.target }", |
| "function f() { return new.t\\u0061rget }", |
| "function f() { return new.\\u0074arget }", |
| "function f() { return n\\u0065w Array }", |
| "function f() { return \\u006eew Array }", |
| "\\u0064o { } while (0)", |
| "[for (x \\u006ff [1]) x]", |
| "[for (x o\\u0066 [1]) x]", |
| ]; |
| |
| for (var script of badScripts) |
| assertThrowsInstanceOf(() => Function(script), SyntaxError); |
| |
| /******************************************************************************/ |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("Tests complete"); |