Index: src/parsing/parser.cc |
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
index b1013296dc5186963477144f72539bf230b85af8..ce3dd20d359310a1b89eda3d05c88551127537d8 100644 |
--- a/src/parsing/parser.cc |
+++ b/src/parsing/parser.cc |
@@ -4678,12 +4678,16 @@ ClassLiteral* Parser::ParseClassLiteral(ExpressionClassifier* classifier, |
const bool is_static = false; |
bool is_computed_name = false; // Classes do not care about computed |
// property names here. |
- ExpressionClassifier classifier(this); |
+ ExpressionClassifier property_classifier(this); |
const AstRawString* property_name = nullptr; |
ObjectLiteral::Property* property = ParsePropertyDefinition( |
&checker, in_class, has_extends, is_static, &is_computed_name, |
- &has_seen_constructor, &classifier, &property_name, CHECK_OK); |
- RewriteNonPattern(&classifier, CHECK_OK); |
+ &has_seen_constructor, &property_classifier, &property_name, CHECK_OK); |
+ RewriteNonPattern(&property_classifier, CHECK_OK); |
+ if (classifier != nullptr) { |
+ classifier->Accumulate(&property_classifier, |
+ ExpressionClassifier::ExpressionProductions); |
+ } |
if (has_seen_constructor && constructor == NULL) { |
constructor = GetPropertyValue(property)->AsFunctionLiteral(); |