Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(713)

Unified Diff: test/cctest/test-parsing.cc

Issue 1318253002: Test that "yield" expressions are disallowed in arrow formal parameter initializers (Closed) Base URL: https://chromium.googlesource.com/v8/v8@master
Patch Set: Remove tests for 'use strict' in function bodies Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698