Index: src/preparser.h |
diff --git a/src/preparser.h b/src/preparser.h |
index 06de6ebe2e4ccb7dca0a7f84f1d47146e549f484..517403d34733eba81ea86c7bedd38162feded389 100644 |
--- a/src/preparser.h |
+++ b/src/preparser.h |
@@ -114,8 +114,6 @@ class ParserBase : public Traits { |
} |
protected: |
- friend class Traits::Type::Checkpoint; |
- |
enum AllowEvalOrArgumentsAsIdentifier { |
kAllowEvalOrArguments, |
kDontAllowEvalOrArguments |
@@ -126,8 +124,6 @@ class ParserBase : public Traits { |
PARSE_EAGERLY |
}; |
- class ParserCheckpoint; |
- |
// --------------------------------------------------------------------------- |
// FunctionState and BlockState together implement the parser's scope stack. |
// The parser's current scope is in scope_. BlockState and FunctionState |
@@ -223,38 +219,6 @@ class ParserBase : public Traits { |
typename Traits::Type::Factory factory_; |
friend class ParserTraits; |
- friend class ParserCheckpoint; |
- }; |
- |
- // 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 ParserCheckpoint : public Traits::Type::Checkpoint { |
- public: |
- template <typename Parser> |
- explicit ParserCheckpoint(Parser* parser) |
- : Traits::Type::Checkpoint(parser) { |
- function_state_ = parser->function_state_; |
- next_materialized_literal_index_ = |
- function_state_->next_materialized_literal_index_; |
- next_handler_index_ = function_state_->next_handler_index_; |
- expected_property_count_ = function_state_->expected_property_count_; |
- } |
- |
- void Restore() { |
- Traits::Type::Checkpoint::Restore(); |
- function_state_->next_materialized_literal_index_ = |
- next_materialized_literal_index_; |
- function_state_->next_handler_index_ = next_handler_index_; |
- function_state_->expected_property_count_ = expected_property_count_; |
- } |
- |
- private: |
- FunctionState* function_state_; |
- int next_materialized_literal_index_; |
- int next_handler_index_; |
- int expected_property_count_; |
}; |
class ParsingModeScope BASE_EMBEDDED { |
@@ -1057,14 +1021,6 @@ class PreParserFactory { |
}; |
-class PreParserCheckpoint BASE_EMBEDDED { |
- public: |
- template <typename Parser> |
- explicit PreParserCheckpoint(Parser* parser) {} |
- void Restore() {} |
-}; |
- |
- |
class PreParser; |
class PreParserTraits { |
@@ -1077,7 +1033,6 @@ class PreParserTraits { |
// Used by FunctionState and BlockState. |
typedef PreParserScope Scope; |
typedef PreParserScope ScopePtr; |
- typedef PreParserCheckpoint Checkpoint; |
// PreParser doesn't need to store generator variables. |
typedef void GeneratorVariable; |
@@ -2051,12 +2006,10 @@ ParserBase<Traits>::ParseAssignmentExpression(bool accept_IN, bool* ok) { |
} |
if (fni_ != NULL) fni_->Enter(); |
- ParserCheckpoint checkpoint(this); |
ExpressionT expression = |
this->ParseConditionalExpression(accept_IN, CHECK_OK); |
if (allow_arrow_functions() && peek() == Token::ARROW) { |
- checkpoint.Restore(); |
expression = this->ParseArrowFunctionLiteral(lhs_location.beg_pos, |
expression, CHECK_OK); |
return expression; |