Index: src/parsing/expression-classifier.h |
diff --git a/src/parsing/expression-classifier.h b/src/parsing/expression-classifier.h |
index 3f70ed82d060965cce15739cb5f3cada9f204354..d3ac6daf97b935479129dc3978897c27c2fb44fa 100644 |
--- a/src/parsing/expression-classifier.h |
+++ b/src/parsing/expression-classifier.h |
@@ -17,16 +17,19 @@ template <typename Traits> |
class ExpressionClassifier { |
public: |
struct Error { |
- Error() |
- : location(Scanner::Location::invalid()), |
- message(MessageTemplate::kNone), |
- type(kSyntaxError), |
- arg(nullptr) {} |
+ Error() { reset(); } |
Scanner::Location location; |
MessageTemplate::Template message : 30; |
ParseErrorType type : 2; |
const char* arg; |
+ |
+ V8_INLINE void reset() { |
+ location.beg_pos = location.end_pos = -1; |
+ message = MessageTemplate::kNone; |
+ type = kSyntaxError; |
+ arg = nullptr; |
+ } |
}; |
enum TargetProduction { |
@@ -320,12 +323,12 @@ class ExpressionClassifier { |
void ForgiveCoverInitializedNameError() { |
invalid_productions_ &= ~CoverInitializedNameProduction; |
- cover_initialized_name_error_ = Error(); |
+ cover_initialized_name_error_.reset(); |
} |
void ForgiveAssignmentPatternError() { |
invalid_productions_ &= ~AssignmentPatternProduction; |
- assignment_pattern_error_ = Error(); |
+ assignment_pattern_error_.reset(); |
} |
void Accumulate(ExpressionClassifier* inner, |