/* * 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");