| Index: src/parser.h
|
| diff --git a/src/parser.h b/src/parser.h
|
| index fd24e8d4e952b4d33408f3fc03c0fcb83ec3bf43..b04f1dade12b38ea2110a7a28254d8283d34041c 100644
|
| --- a/src/parser.h
|
| +++ b/src/parser.h
|
| @@ -339,6 +339,23 @@ class RegExpParser BASE_EMBEDDED {
|
| // ----------------------------------------------------------------------------
|
| // JAVASCRIPT PARSING
|
|
|
| +
|
| +class ParserCheckpoint BASE_EMBEDDED {
|
| + public:
|
| + template <typename Parser>
|
| + explicit ParserCheckpoint(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_;
|
| +};
|
| +
|
| +
|
| class Parser;
|
| class SingletonLogger;
|
|
|
| @@ -354,6 +371,7 @@ class ParserTraits {
|
| typedef v8::internal::Scope* ScopePtr;
|
| typedef Variable GeneratorVariable;
|
| typedef v8::internal::Zone Zone;
|
| + typedef ParserCheckpoint Checkpoint;
|
|
|
| typedef v8::internal::AstProperties AstProperties;
|
| typedef Vector<VariableProxy*> ParameterIdentifierVector;
|
|
|