Index: src/parser.h |
diff --git a/src/parser.h b/src/parser.h |
index fd24e8d4e952b4d33408f3fc03c0fcb83ec3bf43..e3cee84097346b881e8b1e9f744af1cb4a150a02 100644 |
--- a/src/parser.h |
+++ b/src/parser.h |
@@ -355,6 +355,21 @@ class ParserTraits { |
typedef Variable GeneratorVariable; |
typedef v8::internal::Zone Zone; |
+ class Checkpoint BASE_EMBEDDED { |
+ public: |
+ template <typename Parser> |
+ explicit Checkpoint(Parser* parser) { |
+ isolate_ = parser->zone()->isolate(); |
+ saved_ast_node_id_ = isolate_->ast_node_id(); |
+ } |
+ |
+ void Restore() { isolate_->set_ast_node_id(saved_ast_node_id_); } |
+ |
+ private: |
+ Isolate* isolate_; |
+ int saved_ast_node_id_; |
+ }; |
+ |
typedef v8::internal::AstProperties AstProperties; |
typedef Vector<VariableProxy*> ParameterIdentifierVector; |