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

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

Issue 1517973002: [es6] support AssignmentPattern as LHS in for-in/of loops (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Centralize the error validation to a single place, to ease confusion Created 5 years 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 | « src/parsing/preparser.cc ('k') | test/mjsunit/harmony/destructuring-assignment.js » ('j') | 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 942c5be02a6724efe810f52b05dc4c83b2331579..bdc6dc380fed12ca8b830a54e8f5eaab69855b7b 100644
--- a/test/cctest/test-parsing.cc
+++ b/test/cctest/test-parsing.cc
@@ -6828,6 +6828,25 @@ TEST(DestructuringAssignmentPositiveTests) {
{"'use strict'; let x, y, z; for (x of ", " = {});"},
{"var x, y, z; for (x in ", " = {});"},
{"var x, y, z; for (x of ", " = {});"},
+ {"var x, y, z; for (", " in {});"},
+ {"var x, y, z; for (", " of {});"},
+ {"'use strict'; var x, y, z; for (", " in {});"},
+ {"'use strict'; var x, y, z; for (", " of {});"},
+ {NULL, NULL}};
+
+ const char* mixed_assignments_context_data[][2] = {
+ {"'use strict'; let x, y, z; (", " = z = {});"},
+ {"var x, y, z; (", " = z = {});"},
+ {"'use strict'; let x, y, z; (x = ", " = z = {});"},
+ {"var x, y, z; (x = ", " = z = {});"},
+ {"'use strict'; let x, y, z; for (x in ", " = z = {});"},
+ {"'use strict'; let x, y, z; for (x in x = ", " = z = {});"},
+ {"'use strict'; let x, y, z; for (x of ", " = z = {});"},
+ {"'use strict'; let x, y, z; for (x of x = ", " = z = {});"},
+ {"var x, y, z; for (x in ", " = z = {});"},
+ {"var x, y, z; for (x in x = ", " = z = {});"},
+ {"var x, y, z; for (x of ", " = z = {});"},
+ {"var x, y, z; for (x of x = ", " = z = {});"},
{NULL, NULL}};
// clang-format off
@@ -6901,8 +6920,6 @@ TEST(DestructuringAssignmentPositiveTests) {
"[ [ foo()[x] = 10 ] = {} ]",
"[ [ x.y = 10 ] = {} ]",
"[ [ x[y] = 10 ] = {} ]",
-
- "{ x : y }",
"{ x : y = 1 }",
"{ x }",
"{ x, y, z }",
@@ -6945,12 +6962,8 @@ TEST(DestructuringAssignmentPositiveTests) {
"[...x]",
"[x,y,...z]",
"[x,,...z]",
- "{ x: y } = z",
- "[x, y] = z",
- "{ x: y } = { z }",
- "[x, y] = { z }",
- "{ x: y } = [ z ]",
- "[x, y] = [ z ]",
+ "{ x: y }",
+ "[x, y]",
"[((x, y) => z).x]",
"{x: ((y, z) => z).x}",
"[((x, y) => z)['x']]",
@@ -6966,6 +6979,9 @@ TEST(DestructuringAssignmentPositiveTests) {
RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
arraysize(always_flags));
+ RunParserSyncTest(mixed_assignments_context_data, data, kSuccess, NULL, 0,
+ always_flags, arraysize(always_flags));
+
const char* empty_context_data[][2] = {
{"'use strict';", ""}, {"", ""}, {NULL, NULL}};
@@ -7755,3 +7771,12 @@ TEST(EscapedKeywords) {
RunModuleParserSyncTest(strict_context_data, valid_data, kError, NULL, 0,
always_flags, arraysize(always_flags));
}
+
+
+TEST(MiscSyntaxErrors) {
+ const char* context_data[][2] = {
+ {"'use strict'", ""}, {"", ""}, {NULL, NULL}};
+ const char* error_data[] = {"for (();;) {}", NULL};
+
+ RunParserSyncTest(context_data, error_data, kError, NULL, 0, NULL, 0);
+}
« no previous file with comments | « src/parsing/preparser.cc ('k') | test/mjsunit/harmony/destructuring-assignment.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698