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; |