Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index 8573ce3391fa581fe60cfb5cf5e061027d93b3f5..bdff89fcca28e5bc02f61f98a9c2441df4a9d7bf 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -4426,6 +4426,7 @@ TEST(ClassDeclarationNoErrors) { |
| TEST(ClassBodyNoErrors) { |
| + // clang-format off |
| // Tests that parser and preparser accept valid class syntax. |
| const char* context_data[][2] = {{"(class {", "});"}, |
| {"(class extends Base {", "});"}, |
| @@ -4448,6 +4449,8 @@ TEST(ClassBodyNoErrors) { |
| "; *g() {}", |
| "*g() {}; *h(x) {}", |
| "static() {}", |
| + "get static() {}", |
| + "set static(v) {}", |
| "static m() {}", |
| "static get x() {}", |
| "static set x(v) {}", |
| @@ -4457,10 +4460,23 @@ TEST(ClassBodyNoErrors) { |
| "static get static() {}", |
| "static set static(v) {}", |
| "*static() {}", |
| + "static *static() {}", |
| "*get() {}", |
| "*set() {}", |
| "static *g() {}", |
| + |
| + // Escaped 'static' should be allowed anywhere |
|
caitp (gmail)
2016/01/19 21:17:03
missing a `st\u{61}tic foo() {}` error case, since
adamk
2016/01/19 21:21:34
That's already tested down in EscapedKeywords.
|
| + // static-as-PropertyName is. |
| + "st\\u0061tic() {}", |
| + "get st\\u0061tic() {}", |
| + "set st\\u0061tic(v) {}", |
| + "static st\\u0061tic() {}", |
| + "static get st\\u0061tic() {}", |
| + "static set st\\u0061tic(v) {}", |
| + "*st\\u0061tic() {}", |
| + "static *st\\u0061tic() {}", |
| NULL}; |
| + // clang-format on |
| static const ParserFlag always_flags[] = { |
| kAllowHarmonySloppy |
| @@ -7678,6 +7694,13 @@ TEST(LetSloppyOnly) { |
| "for (const [let] = 1; let < 1; let++) {}", |
| "for (const [let] in {}) {}", |
| "for (const [let] of []) {}", |
| + |
| + // Sprinkle in the escaped version too. |
| + "let l\\u0065t = 1", |
| + "const l\\u0065t = 1", |
| + "let [l\\u0065t] = 1", |
| + "const [l\\u0065t] = 1", |
| + "for (let l\\u0065t in {}) {}", |
| NULL |
| }; |
| // clang-format on |
| @@ -7736,6 +7759,7 @@ TEST(EscapedKeywords) { |
| "wh\\u0069le (true) { }", |
| "w\\u0069th (this.scope) { }", |
| "(function*() { y\\u0069eld 1; })()", |
| + "(function*() { var y\\u0069eld = 1; })()", |
| "var \\u0065num = 1;", |
| "var { \\u0065num } = {}", |
| @@ -7773,7 +7797,11 @@ TEST(EscapedKeywords) { |
| "do { ; } wh\\u0069le (true) { }", |
| "(function*() { return (n++, y\\u0069eld 1); })()", |
| "class C { st\\u0061tic bar() {} }", |
| + "class C { st\\u0061tic *bar() {} }", |
| + "class C { st\\u0061tic get bar() {} }", |
| + "class C { st\\u0061tic set bar() {} }", |
| + // TODO(adamk): These should not be errors in sloppy mode. |
| "(y\\u0069eld);", |
| "var y\\u0069eld = 1;", |
| "var { y\\u0069eld } = {};", |
| @@ -7799,14 +7827,14 @@ TEST(EscapedKeywords) { |
| }; |
| // clang-format on |
| - RunParserSyncTest(sloppy_context_data, let_data, kError, NULL, 0, |
| + RunParserSyncTest(sloppy_context_data, let_data, kSuccess, NULL, 0, |
| always_flags, arraysize(always_flags)); |
| RunParserSyncTest(strict_context_data, let_data, kError, NULL, 0, |
| always_flags, arraysize(always_flags)); |
| static const ParserFlag sloppy_let_flags[] = { |
| kAllowHarmonySloppy, kAllowHarmonySloppyLet, kAllowHarmonyDestructuring}; |
| - RunParserSyncTest(sloppy_context_data, let_data, kError, NULL, 0, |
| + RunParserSyncTest(sloppy_context_data, let_data, kSuccess, NULL, 0, |
| sloppy_let_flags, arraysize(sloppy_let_flags)); |
| // Non-errors in sloppy mode |
| @@ -7828,6 +7856,9 @@ TEST(EscapedKeywords) { |
| "(publ\\u0069c);", |
| "var publ\\u0069c = 1;", |
| "var { publ\\u0069c } = {};", |
| + "(st\\u0061tic);", |
| + "var st\\u0061tic = 1;", |
| + "var { st\\u0061tic } = {};", |
| NULL}; |
| RunParserSyncTest(sloppy_context_data, valid_data, kSuccess, NULL, 0, |
| always_flags, arraysize(always_flags)); |