Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index 4f73c9ffdfca05d167732df183fb460997a4d014..fdc88a65c955b753da4259eb6a475e37444c57a3 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -6756,49 +6756,62 @@ TEST(DefaultParametersYieldInInitializers) { |
// clang-format off |
const char* sloppy_function_context_data[][2] = { |
{"(function f(", ") { });"}, |
- // TODO(wingo): Add arrow functions. |
{NULL, NULL} |
}; |
const char* strict_function_context_data[][2] = { |
{"'use strong'; (function f(", ") { });"}, |
{"'use strict'; (function f(", ") { });"}, |
- // TODO(wingo,conradw): These should also signal early errors. |
- // {"(function f(", ") {'use strong'; });"}, |
- // {"(function f(", ") {'use strict'; });"}, |
- // TODO(wingo): Add arrow functions. |
+ {NULL, NULL} |
+ }; |
+ |
+ const char* sloppy_arrow_context_data[][2] = { |
+ {"((", ")=>{});"}, |
+ {NULL, NULL} |
+ }; |
+ |
+ const char* strict_arrow_context_data[][2] = { |
+ {"'use strong'; ((", ")=>{});"}, |
+ {"'use strict'; ((", ")=>{});"}, |
{NULL, NULL} |
}; |
const char* generator_context_data[][2] = { |
{"'use strong'; (function *g(", ") { });"}, |
{"'use strict'; (function *g(", ") { });"}, |
- // TODO(wingo,conradw): These should also signal early errors. |
- // {"(function *g(", ") {'use strong'; });"}, |
- // {"(function *g(", ") {'use strict'; });"}, |
{"(function *g(", ") { });"}, |
{NULL, NULL} |
}; |
- const char* formal_parameter_data[] = { |
+ const char* parameter_data[] = { |
"x=yield", |
"x, y=yield", |
"{x=yield}", |
"[x=yield]", |
- "{x}=yield", |
- "[x]=yield", |
"x=(yield)", |
"x, y=(yield)", |
"{x=(yield)}", |
"[x=(yield)]", |
- "{x}=(yield)", |
- "[x]=(yield)", |
"x=f(yield)", |
"x, y=f(yield)", |
"{x=f(yield)}", |
"[x=f(yield)]", |
+ NULL |
+ }; |
+ |
+ // TODO(wingo): These aren't really destructuring assignment patterns; we're |
+ // just splitting them for now until the parser gets support for arrow |
+ // function arguments that look like destructuring assignments. When that |
+ // happens we should unify destructuring_assignment_data and parameter_data. |
+ const char* destructuring_assignment_data[] = { |
+ "{x}=yield", |
+ "[x]=yield", |
+ |
+ "{x}=(yield)", |
+ "[x]=(yield)", |
+ |
"{x}=f(yield)", |
"[x]=f(yield)", |
NULL |
@@ -6808,12 +6821,30 @@ TEST(DefaultParametersYieldInInitializers) { |
static const ParserFlag always_flags[] = { |
kAllowHarmonyDestructuring, kAllowHarmonyDefaultParameters, |
kAllowHarmonyArrowFunctions, kAllowStrongMode}; |
- RunParserSyncTest(sloppy_function_context_data, formal_parameter_data, |
- kSuccess, NULL, 0, always_flags, arraysize(always_flags)); |
- RunParserSyncTest(strict_function_context_data, formal_parameter_data, kError, |
+ |
+ RunParserSyncTest(sloppy_function_context_data, parameter_data, kSuccess, |
NULL, 0, always_flags, arraysize(always_flags)); |
- RunParserSyncTest(generator_context_data, formal_parameter_data, kError, NULL, |
+ RunParserSyncTest(sloppy_function_context_data, destructuring_assignment_data, |
+ kSuccess, NULL, 0, always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(sloppy_arrow_context_data, parameter_data, kSuccess, NULL, |
+ 0, always_flags, arraysize(always_flags)); |
+ // TODO(wingo): Will change to kSuccess when destructuring assignment lands. |
+ RunParserSyncTest(sloppy_arrow_context_data, destructuring_assignment_data, |
+ kError, NULL, 0, always_flags, arraysize(always_flags)); |
+ |
+ RunParserSyncTest(strict_function_context_data, parameter_data, kError, NULL, |
0, always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(strict_function_context_data, destructuring_assignment_data, |
+ kError, NULL, 0, always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(strict_arrow_context_data, parameter_data, kError, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(strict_arrow_context_data, destructuring_assignment_data, |
+ kError, NULL, 0, always_flags, arraysize(always_flags)); |
+ |
+ RunParserSyncTest(generator_context_data, parameter_data, kError, NULL, 0, |
+ always_flags, arraysize(always_flags)); |
+ RunParserSyncTest(generator_context_data, destructuring_assignment_data, |
+ kError, NULL, 0, always_flags, arraysize(always_flags)); |
} |