Chromium Code Reviews| Index: src/parsing/parser.h |
| diff --git a/src/parsing/parser.h b/src/parsing/parser.h |
| index 00075f46e142303e0fc4c6cdfeda2d2d64ef90ad..016d3aa865a72c19c9245fc72e86e8d312002d4e 100644 |
| --- a/src/parsing/parser.h |
| +++ b/src/parsing/parser.h |
| @@ -235,6 +235,21 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) { |
| original_scope_); |
| } |
| + class ParsingModeScope BASE_EMBEDDED { |
| + public: |
| + ParsingModeScope(Parser* parser, Mode mode) |
| + : parser_(parser), old_mode_(parser->mode()) { |
|
vogelheim
2016/11/07 14:56:17
Why not just access parser_->mode_, since we're di
|
| + parser_->mode_ = mode; |
| + } |
| + ~ParsingModeScope() { parser_->mode_ = old_mode_; } |
| + |
| + private: |
| + Parser* parser_; |
| + Mode old_mode_; |
| + }; |
| + |
| + Mode mode() const { return mode_; } |
| + |
| // Runtime encoding of different completion modes. |
| enum CompletionKind { |
| kNormalCompletion, |
| @@ -1119,6 +1134,7 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) { |
| Scanner scanner_; |
| PreParser* reusable_preparser_; |
| Scope* original_scope_; // for ES5 function declarations in sloppy eval |
| + Mode mode_; |
|
vogelheim
2016/11/07 14:56:17
If Parser/parser.h "owns" the parsing mode now, it
|
| friend class ParserTarget; |
| friend class ParserTargetScope; |