Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index 1b0ced08edc3d895d20c7570a3d466de3e3ae048..6e6f7ce59c306fa39efad3804337bd1f8651750f 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -2009,25 +2009,28 @@ TEST(NoErrorsEvalAndArgumentsStrict) { |
| RunParserSyncTest(context_data, statement_data, kSuccess); |
| } |
| +#define FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) \ |
| + V(implements) \ |
| + V(interface) \ |
| + V(package) \ |
| + V(private) \ |
| + V(protected) \ |
| + V(public) \ |
| + V(static) \ |
| + V(yield) |
|
Dan Ehrenberg
2016/04/20 20:59:56
I believe all of these extra tests would be valid
Dan Ehrenberg
2016/04/20 21:02:31
Actually, I see you are using 'no let' for your sl
mike3
2016/04/21 19:51:20
Sure thing, I'll add tests for both cases.
|
| #define FUTURE_STRICT_RESERVED_WORDS(V) \ |
| - V(implements) \ |
| - V(interface) \ |
| V(let) \ |
| - V(package) \ |
| - V(private) \ |
| - V(protected) \ |
| - V(public) \ |
| - V(static) \ |
| - V(yield) |
| + FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) |
| +#define LIMITED_FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) \ |
| + V(implements) \ |
| + V(static) \ |
| + V(yield) |
| #define LIMITED_FUTURE_STRICT_RESERVED_WORDS(V) \ |
| - V(implements) \ |
| V(let) \ |
| - V(static) \ |
| - V(yield) |
| - |
| + LIMITED_FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) |
| #define FUTURE_STRICT_RESERVED_STATEMENTS(NAME) \ |
| "var " #NAME ";", \ |
| @@ -2043,6 +2046,13 @@ TEST(NoErrorsEvalAndArgumentsStrict) { |
| "++" #NAME ";", \ |
| #NAME " ++;", |
| +// clang-format off |
| +#define FUTURE_STRICT_RESERVED_LET_BINDINGS(NAME) \ |
| + "let " #NAME ";", \ |
| + "for (let " #NAME "; false; ) {}", \ |
| + "for (let " #NAME " in {}) {}", \ |
| + "for (let " #NAME " of []) {}", |
|
Dan Ehrenberg
2016/04/20 20:59:56
For completeness, you can use const for most of th
mike3
2016/04/21 19:51:20
Acknowledged.
|
| +// clang-format on |
| TEST(ErrorsFutureStrictReservedWords) { |
| // Tests that both preparsing and parsing produce the right kind of errors for |
| @@ -2054,15 +2064,18 @@ TEST(ErrorsFutureStrictReservedWords) { |
| {"() => { \"use strict\"; ", "}"}, |
| {NULL, NULL}}; |
| + // clang-format off |
| const char* statement_data[] { |
| LIMITED_FUTURE_STRICT_RESERVED_WORDS(FUTURE_STRICT_RESERVED_STATEMENTS) |
| + LIMITED_FUTURE_STRICT_RESERVED_WORDS_NO_LET( |
| + FUTURE_STRICT_RESERVED_LET_BINDINGS) |
| NULL |
| }; |
| + // clang-format on |
| RunParserSyncTest(context_data, statement_data, kError); |
| } |
| - |
| #undef LIMITED_FUTURE_STRICT_RESERVED_WORDS |
| @@ -2074,10 +2087,13 @@ TEST(NoErrorsFutureStrictReservedWords) { |
| { NULL, NULL } |
| }; |
| + // clang-format off |
| const char* statement_data[] = { |
| FUTURE_STRICT_RESERVED_WORDS(FUTURE_STRICT_RESERVED_STATEMENTS) |
| + FUTURE_STRICT_RESERVED_WORDS_NO_LET(FUTURE_STRICT_RESERVED_LET_BINDINGS) |
| NULL |
| }; |
| + // clang-format on |
| RunParserSyncTest(context_data, statement_data, kSuccess); |
| } |