| Index: test/cctest/test-parsing.cc
|
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
|
| index 7a203d423817345bb5d15b6f7bc4101780861ec3..ff0026d2bda1f85964df73db61aa642232e2b4c0 100644
|
| --- a/test/cctest/test-parsing.cc
|
| +++ b/test/cctest/test-parsing.cc
|
| @@ -1503,11 +1503,8 @@ i::Handle<i::String> FormatMessage(i::Vector<unsigned> data) {
|
| enum ParserFlag {
|
| kAllowLazy,
|
| kAllowNatives,
|
| - kAllowHarmonyDefaultParameters,
|
| kAllowHarmonySloppy,
|
| kAllowHarmonySloppyLet,
|
| - kAllowHarmonyDestructuring,
|
| - kAllowHarmonyDestructuringAssignment,
|
| kAllowHarmonyNewTarget,
|
| kNoLegacyConst,
|
| kAllowHarmonyFunctionSent,
|
| @@ -1525,14 +1522,8 @@ void SetParserFlags(i::ParserBase<Traits>* parser,
|
| i::EnumSet<ParserFlag> flags) {
|
| parser->set_allow_lazy(flags.Contains(kAllowLazy));
|
| parser->set_allow_natives(flags.Contains(kAllowNatives));
|
| - parser->set_allow_harmony_default_parameters(
|
| - flags.Contains(kAllowHarmonyDefaultParameters));
|
| parser->set_allow_harmony_sloppy(flags.Contains(kAllowHarmonySloppy));
|
| parser->set_allow_harmony_sloppy_let(flags.Contains(kAllowHarmonySloppyLet));
|
| - parser->set_allow_harmony_destructuring_bind(
|
| - flags.Contains(kAllowHarmonyDestructuring));
|
| - parser->set_allow_harmony_destructuring_assignment(
|
| - flags.Contains(kAllowHarmonyDestructuringAssignment));
|
| parser->set_allow_legacy_const(!flags.Contains(kNoLegacyConst));
|
| parser->set_allow_harmony_function_sent(
|
| flags.Contains(kAllowHarmonyFunctionSent));
|
| @@ -2350,10 +2341,7 @@ TEST(NoErrorsGenerator) {
|
| };
|
| // clang-format on
|
|
|
| - static const ParserFlag always_flags[] = {
|
| - kAllowHarmonyDestructuringAssignment};
|
| - RunParserSyncTest(context_data, statement_data, kSuccess, nullptr, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(context_data, statement_data, kSuccess);
|
| }
|
|
|
|
|
| @@ -3742,20 +3730,11 @@ TEST(ErrorsArrowFunctions) {
|
| "(-a, b) => {}",
|
| "(a, -b) => {}",
|
| "{} => {}",
|
| - "({}) => {}",
|
| - "(a, {}) => {}",
|
| - "({}, a) => {}",
|
| "a++ => {}",
|
| "(a++) => {}",
|
| "(a++, b) => {}",
|
| "(a, b++) => {}",
|
| "[] => {}",
|
| - "([]) => {}",
|
| - "(a, []) => {}",
|
| - "([], a) => {}",
|
| - "(a = b) => {}",
|
| - "(a = b, c) => {}",
|
| - "(a, b = c) => {}",
|
| "(foo ? bar : baz) => {}",
|
| "(a, foo ? bar : baz) => {}",
|
| "(foo ? bar : baz, a) => {}",
|
| @@ -3789,6 +3768,7 @@ TEST(ErrorsArrowFunctions) {
|
|
|
| TEST(NoErrorsArrowFunctions) {
|
| // Tests that parser and preparser accept valid arrow functions syntax.
|
| + // clang-format off
|
| const char* context_data[][2] = {
|
| {"", ";"},
|
| {"bar ? (", ") : baz;"},
|
| @@ -3834,6 +3814,15 @@ TEST(NoErrorsArrowFunctions) {
|
| "foo ? bar : baz => {}",
|
|
|
| // Arrows with non-simple parameters.
|
| + "({}) => {}",
|
| + "(a, {}) => {}",
|
| + "({}, a) => {}",
|
| + "([]) => {}",
|
| + "(a, []) => {}",
|
| + "([], a) => {}",
|
| + "(a = b) => {}",
|
| + "(a = b, c) => {}",
|
| + "(a, b = c) => {}",
|
| "({a}) => {}",
|
| "(x = 9) => {}",
|
| "(x, y = 9) => {}",
|
| @@ -3845,18 +3834,15 @@ TEST(NoErrorsArrowFunctions) {
|
| "(x = 9, ...a) => {}",
|
| "(x, y = 9, ...a) => {}",
|
| "(x, y = 9, {b}, z = 8, ...a) => {}",
|
| - // TODO(wingo, rossberg): This is not accepted right now.
|
| - // "({a} = {}) => {}",
|
| - // "([x] = []) => {}",
|
| + "({a} = {}) => {}",
|
| + "([x] = []) => {}",
|
| "({a = 42}) => {}",
|
| "([x = 0]) => {}",
|
| NULL
|
| };
|
| + // clang-format on
|
|
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDefaultParameters,
|
| - kAllowHarmonyDestructuring};
|
| - RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(context_data, statement_data, kSuccess);
|
|
|
| static const ParserFlag flags[] = {kAllowLazy};
|
| // In a context where a concise arrow body is parsed with [~In] variant,
|
| @@ -3943,13 +3929,9 @@ TEST(ArrowFunctionsYieldParameterNameInGenerator) {
|
| NULL
|
| };
|
|
|
| - static const ParserFlag always_flags[] = { kAllowHarmonyDestructuring };
|
| - RunParserSyncTest(sloppy_function_context_data, arrow_data, kSuccess, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| - RunParserSyncTest(strict_function_context_data, arrow_data, kError, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| - RunParserSyncTest(generator_context_data, arrow_data, kError, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(sloppy_function_context_data, arrow_data, kSuccess);
|
| + RunParserSyncTest(strict_function_context_data, arrow_data, kError);
|
| + RunParserSyncTest(generator_context_data, arrow_data, kError);
|
| }
|
|
|
|
|
| @@ -5376,9 +5358,7 @@ TEST(ParseRestParameters) {
|
| "...[]",
|
| "...[...[a, b, ...c]]",
|
| NULL};
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| - RunParserSyncTest(context_data, data, kSuccess, nullptr, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, data, kSuccess);
|
| }
|
|
|
|
|
| @@ -6027,13 +6007,7 @@ TEST(ArrowFunctionASIErrors) {
|
| }
|
|
|
|
|
| -static const ParserFlag kAllDestructuringFlags[] = {
|
| - kAllowHarmonyDestructuring, kAllowHarmonyDestructuringAssignment,
|
| - kAllowHarmonyDefaultParameters};
|
| -
|
| TEST(DestructuringPositiveTests) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| -
|
| const char* context_data[][2] = {{"'use strict'; let ", " = {};"},
|
| {"var ", " = {};"},
|
| {"'use strict'; const ", " = {};"},
|
| @@ -6084,18 +6058,11 @@ TEST(DestructuringPositiveTests) {
|
| "[a,,...rest]",
|
| NULL};
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| - RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| - RunParserSyncTest(context_data, data, kSuccess, NULL, 0,
|
| - kAllDestructuringFlags, arraysize(kAllDestructuringFlags));
|
| + RunParserSyncTest(context_data, data, kSuccess);
|
| }
|
|
|
|
|
| TEST(DestructuringNegativeTests) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| -
|
| { // All modes.
|
| const char* context_data[][2] = {{"'use strict'; let ", " = {};"},
|
| {"var ", " = {};"},
|
| @@ -6180,11 +6147,7 @@ TEST(DestructuringNegativeTests) {
|
| "{ *method() {} }",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0,
|
| - kAllDestructuringFlags,
|
| - arraysize(kAllDestructuringFlags));
|
| + RunParserSyncTest(context_data, data, kError);
|
| }
|
|
|
| { // All modes.
|
| @@ -6203,11 +6166,7 @@ TEST(DestructuringNegativeTests) {
|
| "() => x",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0,
|
| - kAllDestructuringFlags,
|
| - arraysize(kAllDestructuringFlags));
|
| + RunParserSyncTest(context_data, data, kError);
|
| }
|
|
|
| { // Strict mode.
|
| @@ -6226,11 +6185,7 @@ TEST(DestructuringNegativeTests) {
|
| "{ x : private }",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0,
|
| - kAllDestructuringFlags,
|
| - arraysize(kAllDestructuringFlags));
|
| + RunParserSyncTest(context_data, data, kError);
|
| }
|
|
|
| { // 'yield' in generators.
|
| @@ -6247,11 +6202,7 @@ TEST(DestructuringNegativeTests) {
|
| "{ x : yield }",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0,
|
| - kAllDestructuringFlags,
|
| - arraysize(kAllDestructuringFlags));
|
| + RunParserSyncTest(context_data, data, kError);
|
| }
|
|
|
| { // Declaration-specific errors
|
| @@ -6275,8 +6226,7 @@ TEST(DestructuringNegativeTests) {
|
| "[ a ]",
|
| NULL};
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring,
|
| - kAllowHarmonySloppyLet};
|
| + static const ParserFlag always_flags[] = {kAllowHarmonySloppyLet};
|
| RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| arraysize(always_flags));
|
| }
|
| @@ -6449,14 +6399,9 @@ TEST(DestructuringAssignmentPositiveTests) {
|
|
|
| NULL};
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {
|
| - kAllowHarmonyDestructuringAssignment, kAllowHarmonyDestructuring,
|
| - kAllowHarmonyDefaultParameters};
|
| - RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, data, kSuccess);
|
|
|
| - RunParserSyncTest(mixed_assignments_context_data, data, kSuccess, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(mixed_assignments_context_data, data, kSuccess);
|
|
|
| const char* empty_context_data[][2] = {
|
| {"'use strict';", ""}, {"", ""}, {NULL, NULL}};
|
| @@ -6477,8 +6422,7 @@ TEST(DestructuringAssignmentPositiveTests) {
|
| "var x; (({ x = 10 } = { x = 20 } = {}) => x)({})",
|
| NULL,
|
| };
|
| - RunParserSyncTest(empty_context_data, ambiguity_data, kSuccess, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(empty_context_data, ambiguity_data, kSuccess);
|
| }
|
|
|
|
|
| @@ -6577,11 +6521,7 @@ TEST(DestructuringAssignmentNegativeTests) {
|
|
|
| NULL};
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {
|
| - kAllowHarmonyDestructuringAssignment, kAllowHarmonyDestructuring,
|
| - kAllowHarmonyDefaultParameters};
|
| - RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, data, kError);
|
|
|
| const char* empty_context_data[][2] = {
|
| {"'use strict';", ""}, {"", ""}, {NULL, NULL}};
|
| @@ -6606,8 +6546,7 @@ TEST(DestructuringAssignmentNegativeTests) {
|
|
|
| NULL,
|
| };
|
| - RunParserSyncTest(empty_context_data, ambiguity_data, kError, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(empty_context_data, ambiguity_data, kError);
|
|
|
| // Strict mode errors
|
| const char* strict_context_data[][2] = {{"'use strict'; (", " = {})"},
|
| @@ -6648,14 +6587,11 @@ TEST(DestructuringAssignmentNegativeTests) {
|
| "[ ...(arguments) = 0 ]",
|
|
|
| NULL};
|
| - RunParserSyncTest(strict_context_data, strict_data, kError, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(strict_context_data, strict_data, kError);
|
| }
|
|
|
|
|
| TEST(DestructuringDisallowPatternsInForVarIn) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| const char* context_data[][2] = {
|
| {"", ""}, {"function f() {", "}"}, {NULL, NULL}};
|
| // clang-format off
|
| @@ -6664,22 +6600,18 @@ TEST(DestructuringDisallowPatternsInForVarIn) {
|
| "for (let x = {} of null);",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, error_data, kError);
|
|
|
| // clang-format off
|
| const char* success_data[] = {
|
| "for (var x = {} in null);",
|
| NULL};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, success_data, kSuccess, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, success_data, kSuccess);
|
| }
|
|
|
|
|
| TEST(DestructuringDuplicateParams) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| const char* context_data[][2] = {{"'use strict';", ""},
|
| {"function outer() { 'use strict';", "}"},
|
| {nullptr, nullptr}};
|
| @@ -6698,14 +6630,11 @@ TEST(DestructuringDuplicateParams) {
|
| "function f(x, x, {a}) {}",
|
| nullptr};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, error_data, kError);
|
| }
|
|
|
|
|
| TEST(DestructuringDuplicateParamsSloppy) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| const char* context_data[][2] = {
|
| {"", ""}, {"function outer() {", "}"}, {nullptr, nullptr}};
|
|
|
| @@ -6719,14 +6648,11 @@ TEST(DestructuringDuplicateParamsSloppy) {
|
| "function f(x, x, {a}) {}",
|
| nullptr};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, error_data, kError);
|
| }
|
|
|
|
|
| TEST(DestructuringDisallowPatternsInSingleParamArrows) {
|
| - i::FLAG_harmony_destructuring_bind = true;
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring};
|
| const char* context_data[][2] = {{"'use strict';", ""},
|
| {"function outer() { 'use strict';", "}"},
|
| {"", ""},
|
| @@ -6739,8 +6665,7 @@ TEST(DestructuringDisallowPatternsInSingleParamArrows) {
|
| "var f = {x,y} => {};",
|
| nullptr};
|
| // clang-format on
|
| - RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
|
| - arraysize(always_flags));
|
| + RunParserSyncTest(context_data, error_data, kError);
|
| }
|
|
|
|
|
| @@ -6800,21 +6725,14 @@ TEST(DefaultParametersYieldInInitializers) {
|
| };
|
|
|
| // clang-format on
|
| - static const ParserFlag always_flags[] = {kAllowHarmonyDestructuring,
|
| - kAllowHarmonyDefaultParameters};
|
|
|
| - RunParserSyncTest(sloppy_function_context_data, parameter_data, kSuccess,
|
| - NULL, 0, always_flags, arraysize(always_flags));
|
| - RunParserSyncTest(sloppy_arrow_context_data, parameter_data, kSuccess, NULL,
|
| - 0, always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(sloppy_function_context_data, parameter_data, kSuccess);
|
| + RunParserSyncTest(sloppy_arrow_context_data, parameter_data, kSuccess);
|
|
|
| - RunParserSyncTest(strict_function_context_data, parameter_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_function_context_data, parameter_data, kError);
|
| + RunParserSyncTest(strict_arrow_context_data, parameter_data, kError);
|
|
|
| - RunParserSyncTest(generator_context_data, parameter_data, kError, NULL, 0,
|
| - always_flags, arraysize(always_flags));
|
| + RunParserSyncTest(generator_context_data, parameter_data, kError);
|
| }
|
|
|
|
|
| @@ -7026,9 +6944,7 @@ TEST(LanguageModeDirectivesNonSimpleParameterListErrors) {
|
| "{ initializedBindingPattern } = { initializedBindingPattern: true }",
|
| NULL};
|
|
|
| - static const ParserFlag always_flags[] = {
|
| - kAllowHarmonyDefaultParameters, kAllowHarmonyDestructuring,
|
| - kAllowHarmonySloppy};
|
| + static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
|
| RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
|
| arraysize(always_flags));
|
| }
|
| @@ -7064,8 +6980,8 @@ TEST(LetSloppyOnly) {
|
| };
|
| // clang-format on
|
|
|
| - static const ParserFlag always_flags[] = {
|
| - kAllowHarmonySloppy, kAllowHarmonySloppyLet, kAllowHarmonyDestructuring};
|
| + static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
|
| + kAllowHarmonySloppyLet};
|
| RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
|
| arraysize(always_flags));
|
|
|
| @@ -7102,8 +7018,7 @@ TEST(LetSloppyOnly) {
|
| // clang-format on
|
|
|
| static const ParserFlag fail_flags[] = {
|
| - kAllowHarmonySloppy, kAllowHarmonySloppyLet, kNoLegacyConst,
|
| - kAllowHarmonyDestructuring};
|
| + kAllowHarmonySloppy, kAllowHarmonySloppyLet, kNoLegacyConst};
|
| RunParserSyncTest(context_data, fail_data, kError, NULL, 0, fail_flags,
|
| arraysize(fail_flags));
|
| }
|
| @@ -7205,8 +7120,7 @@ TEST(EscapedKeywords) {
|
| };
|
| // clang-format on
|
|
|
| - static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
|
| - kAllowHarmonyDestructuring};
|
| + static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
|
| RunParserSyncTest(sloppy_context_data, fail_data, kError, NULL, 0,
|
| always_flags, arraysize(always_flags));
|
| RunParserSyncTest(strict_context_data, fail_data, kError, NULL, 0,
|
| @@ -7228,8 +7142,8 @@ TEST(EscapedKeywords) {
|
| RunParserSyncTest(strict_context_data, let_data, kError, NULL, 0,
|
| always_flags, arraysize(always_flags));
|
|
|
| - static const ParserFlag sloppy_let_flags[] = {
|
| - kAllowHarmonySloppy, kAllowHarmonySloppyLet, kAllowHarmonyDestructuring};
|
| + static const ParserFlag sloppy_let_flags[] = {kAllowHarmonySloppy,
|
| + kAllowHarmonySloppyLet};
|
| RunParserSyncTest(sloppy_context_data, let_data, kSuccess, NULL, 0,
|
| sloppy_let_flags, arraysize(sloppy_let_flags));
|
|
|
|
|