| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 6132d4109d2bc1c966962d9154649c8dfd57bc6d..675b48797952dbaf3e0afd23b933c61651ea1998 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -6380,11 +6380,17 @@ TEST(StrongModeFreeVariablesNotDeclared) {
|
|
|
| TEST(DestructuringPositiveTests) {
|
| i::FLAG_harmony_destructuring = true;
|
| + i::FLAG_harmony_arrow_functions = true;
|
| i::FLAG_harmony_computed_property_names = true;
|
|
|
| const char* context_data[][2] = {{"'use strict'; let ", " = {};"},
|
| {"var ", " = {};"},
|
| {"'use strict'; const ", " = {};"},
|
| + {"function f(", ") {}"},
|
| + {"function f(argument1, ", ") {}"},
|
| + {"var f = (", ") => {};"},
|
| + {"var f = ", " => {};"},
|
| + {"var f = (argument1,", ") => {};"},
|
| {NULL, NULL}};
|
|
|
| // clang-format off
|
| @@ -6424,9 +6430,9 @@ TEST(DestructuringPositiveTests) {
|
| "[a,,...rest]",
|
| NULL};
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyObjectLiterals,
|
| - kAllowHarmonyComputedPropertyNames,
|
| - kAllowHarmonyDestructuring};
|
| + static const ParserFlag always_flags[] = {
|
| + kAllowHarmonyObjectLiterals, kAllowHarmonyComputedPropertyNames,
|
| + kAllowHarmonyArrowFunctions, kAllowHarmonyDestructuring};
|
| RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
|
| arraysize(always_flags));
|
| }
|
| @@ -6434,15 +6440,21 @@ TEST(DestructuringPositiveTests) {
|
|
|
| TEST(DestructuringNegativeTests) {
|
| i::FLAG_harmony_destructuring = true;
|
| + i::FLAG_harmony_arrow_functions = true;
|
| i::FLAG_harmony_computed_property_names = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyObjectLiterals,
|
| - kAllowHarmonyComputedPropertyNames,
|
| - kAllowHarmonyDestructuring};
|
| + static const ParserFlag always_flags[] = {
|
| + kAllowHarmonyObjectLiterals, kAllowHarmonyComputedPropertyNames,
|
| + kAllowHarmonyArrowFunctions, kAllowHarmonyDestructuring};
|
|
|
| { // All modes.
|
| const char* context_data[][2] = {{"'use strict'; let ", " = {};"},
|
| {"var ", " = {};"},
|
| {"'use strict'; const ", " = {};"},
|
| + {"function f(", ") {}"},
|
| + {"function f(argument1, ", ") {}"},
|
| + {"var f = (", ") => {};"},
|
| + {"var f = ", " => {};"},
|
| + {"var f = (argument1,", ") => {};"},
|
| {NULL, NULL}};
|
|
|
| // clang-format off
|
| @@ -6475,7 +6487,6 @@ TEST(DestructuringNegativeTests) {
|
| "a >>> a",
|
| "function a() {}",
|
| "a`bcd`",
|
| - "x => x",
|
| "this",
|
| "null",
|
| "true",
|
| @@ -6483,7 +6494,6 @@ TEST(DestructuringNegativeTests) {
|
| "1",
|
| "'abc'",
|
| "class {}",
|
| - "() => x",
|
| "{+2 : x}",
|
| "{-2 : x}",
|
| "var",
|
| @@ -6509,13 +6519,36 @@ TEST(DestructuringNegativeTests) {
|
| arraysize(always_flags));
|
| }
|
|
|
| - { // Strict mode.
|
| + { // All modes.
|
| const char* context_data[][2] = {{"'use strict'; let ", " = {};"},
|
| + {"var ", " = {};"},
|
| {"'use strict'; const ", " = {};"},
|
| + {"function f(", ") {}"},
|
| + {"function f(argument1, ", ") {}"},
|
| + {"var f = (", ") => {};"},
|
| + {"var f = (argument1,", ") => {};"},
|
| {NULL, NULL}};
|
|
|
| // clang-format off
|
| const char* data[] = {
|
| + "x => x",
|
| + "() => x",
|
| + NULL};
|
| + // clang-format on
|
| + RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| + arraysize(always_flags));
|
| + }
|
| +
|
| + { // Strict mode.
|
| + const char* context_data[][2] = {
|
| + {"'use strict'; let ", " = {};"},
|
| + {"'use strict'; const ", " = {};"},
|
| + {"'use strict'; function f(", ") {}"},
|
| + {"'use strict'; function f(argument1, ", ") {}"},
|
| + {NULL, NULL}};
|
| +
|
| + // clang-format off
|
| + const char* data[] = {
|
| "[eval]",
|
| "{ a : arguments }",
|
| "[public]",
|
|
|