Index: test/cctest/test-parsing.cc |
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
index a28c235c5e3f036049c8cdf32d6ba6fedcdcacd1..7f297b3d67a58b260ce1359c0722b398c5cfce96 100644 |
--- a/test/cctest/test-parsing.cc |
+++ b/test/cctest/test-parsing.cc |
@@ -2332,6 +2332,10 @@ TEST(NoErrorsGenerator) { |
"(yield) \n ? yield : yield", |
// If there is a newline before the next token, we don't look for RHS. |
"yield\nfor (;;) {}", |
+ "x = class extends (yield) {}", |
+ "x = class extends f(yield) {}", |
+ "x = class extends (null, yield) { }", |
+ "x = class extends (a ? null : yield) { }", |
NULL |
}; |
// clang-format on |
@@ -2396,6 +2400,7 @@ TEST(ErrorsYieldGenerator) { |
"for (yield 'x' of {});", |
"for (yield 'x' in {} in {});", |
"for (yield 'x' in {} of {});", |
+ "class C extends yield { }", |
NULL |
}; |
// clang-format on |
@@ -6730,6 +6735,9 @@ TEST(DefaultParametersYieldInInitializers) { |
const char* generator_context_data[][2] = { |
{"'use strict'; (function *g(", ") { });"}, |
{"(function *g(", ") { });"}, |
+ // Arrow function within generator has the same rules. |
+ {"'use strict'; (function *g() { (", ") => {} });"}, |
+ {"(function *g() { (", ") => {} });"}, |
{NULL, NULL} |
}; |
@@ -6760,6 +6768,17 @@ TEST(DefaultParametersYieldInInitializers) { |
NULL |
}; |
+ // Because classes are always in strict mode, these are always errors. |
+ const char* always_error_param_data[] = { |
+ "x = class extends (yield) { }", |
+ "x = class extends f(yield) { }", |
+ "x = class extends (null, yield) { }", |
+ "x = class extends (a ? null : yield) { }", |
+ "[x] = [class extends (a ? null : yield) { }]", |
+ "[x = class extends (a ? null : yield) { }]", |
+ "[x = class extends (a ? null : yield) { }] = [null]", |
+ NULL |
+ }; |
// clang-format on |
RunParserSyncTest(sloppy_function_context_data, parameter_data, kSuccess); |
@@ -6769,9 +6788,9 @@ TEST(DefaultParametersYieldInInitializers) { |
RunParserSyncTest(strict_arrow_context_data, parameter_data, kError); |
RunParserSyncTest(generator_context_data, parameter_data, kError); |
+ RunParserSyncTest(generator_context_data, always_error_param_data, kError); |
} |
- |
TEST(SpreadArray) { |
const char* context_data[][2] = { |
{"'use strict';", ""}, {"", ""}, {NULL, NULL}}; |