From: svenpanne@chromium.org Date: Tue, 7 Oct 2014 12:16:28 +0000 (+0000) Subject: Do not save/restore AST id generator. X-Git-Tag: upstream/4.7.83~6519 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f647ed7bfdb7373bd40db42b36b2bd2ba5130644;p=platform%2Fupstream%2Fv8.git Do not save/restore AST id generator. AST ids only need to be unique, so there is no need to fiddle around with them. R=dslomov@chromium.org Review URL: https://codereview.chromium.org/633053002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/parser.cc b/src/parser.cc index ef9069c..2b91443 100644 --- a/src/parser.cc +++ b/src/parser.cc @@ -342,25 +342,6 @@ class TargetScope BASE_EMBEDDED { // ---------------------------------------------------------------------------- // Implementation of Parser -class ParserTraits::Checkpoint - : public ParserBase::CheckpointBase { - public: - explicit Checkpoint(ParserBase* parser) - : CheckpointBase(parser), parser_(parser) { - saved_ast_node_id_gen_ = *parser_->ast_node_id_gen_; - } - - void Restore() { - CheckpointBase::Restore(); - *parser_->ast_node_id_gen_ = saved_ast_node_id_gen_; - } - - private: - ParserBase* parser_; - AstNode::IdGen saved_ast_node_id_gen_; -}; - - bool ParserTraits::IsEvalOrArguments(const AstRawString* identifier) const { return identifier == parser_->ast_value_factory()->eval_string() || identifier == parser_->ast_value_factory()->arguments_string(); diff --git a/src/parser.h b/src/parser.h index 5cbb19a..300cc03 100644 --- a/src/parser.h +++ b/src/parser.h @@ -374,8 +374,6 @@ class ParserTraits { typedef AstNodeFactory Factory; }; - class Checkpoint; - explicit ParserTraits(Parser* parser) : parser_(parser) {} // Custom operations executed when FunctionStates are created and destructed. diff --git a/src/preparser.cc b/src/preparser.cc index 3173cc0..27a7b9e 100644 --- a/src/preparser.cc +++ b/src/preparser.cc @@ -32,13 +32,6 @@ int isfinite(double value); namespace v8 { namespace internal { -class PreParserTraits::Checkpoint - : public ParserBase::CheckpointBase { - public: - explicit Checkpoint(ParserBase* parser) - : ParserBase::CheckpointBase(parser) {} -}; - void PreParserTraits::ReportMessageAt(Scanner::Location location, const char* message, const char* arg, diff --git a/src/preparser.h b/src/preparser.h index f3bb292..5c2a622 100644 --- a/src/preparser.h +++ b/src/preparser.h @@ -123,8 +123,6 @@ class ParserBase : public Traits { } protected: - friend class Traits::Checkpoint; - enum AllowEvalOrArgumentsAsIdentifier { kAllowEvalOrArguments, kDontAllowEvalOrArguments @@ -135,7 +133,7 @@ class ParserBase : public Traits { PARSE_EAGERLY }; - class CheckpointBase; + class Checkpoint; class ObjectLiteralChecker; // --------------------------------------------------------------------------- @@ -235,16 +233,16 @@ class ParserBase : public Traits { typename Traits::Type::Factory factory_; friend class ParserTraits; - friend class CheckpointBase; + friend class Checkpoint; }; // Annoyingly, arrow functions first parse as comma expressions, then when we // see the => we have to go back and reinterpret the arguments as being formal // parameters. To do so we need to reset some of the parser state back to // what it was before the arguments were first seen. - class CheckpointBase BASE_EMBEDDED { + class Checkpoint BASE_EMBEDDED { public: - explicit CheckpointBase(ParserBase* parser) { + explicit Checkpoint(ParserBase* parser) { function_state_ = parser->function_state_; next_materialized_literal_index_ = function_state_->next_materialized_literal_index_; @@ -1149,8 +1147,6 @@ class PreParserTraits { typedef PreParserFactory Factory; }; - class Checkpoint; - explicit PreParserTraits(PreParser* pre_parser) : pre_parser_(pre_parser) {} // Custom operations executed when FunctionStates are created and @@ -2164,7 +2160,7 @@ ParserBase::ParseAssignmentExpression(bool accept_IN, bool* ok) { } if (fni_ != NULL) fni_->Enter(); - typename Traits::Checkpoint checkpoint(this); + ParserBase::Checkpoint checkpoint(this); ExpressionT expression = this->ParseConditionalExpression(accept_IN, CHECK_OK);