Index: src/parsing/parser.cc |
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc |
index fdb65ff277aa5b5cec753759098a8c27fcfcc726..b31c34c378c8bb6528f0d088e9b64f3f7c29b1f2 100644 |
--- a/src/parsing/parser.cc |
+++ b/src/parsing/parser.cc |
@@ -3024,7 +3024,7 @@ class Parser::DontCollectExpressionsInTailPositionScope { |
class Parser::CollectExpressionsInTailPositionToListScope { |
public: |
CollectExpressionsInTailPositionToListScope( |
- Parser::FunctionState* function_state, List<Expression*>* list) |
+ Parser::FunctionState* function_state, ZoneList<Expression*>* list) |
: function_state_(function_state), list_(list) { |
function_state->expressions_in_tail_position().Swap(list_); |
} |
@@ -3034,7 +3034,7 @@ class Parser::CollectExpressionsInTailPositionToListScope { |
private: |
Parser::FunctionState* function_state_; |
- List<Expression*>* list_; |
+ ZoneList<Expression*>* list_; |
}; |
TryStatement* Parser::ParseTryStatement(bool* ok) { |
@@ -3068,7 +3068,7 @@ TryStatement* Parser::ParseTryStatement(bool* ok) { |
Scope* catch_scope = NULL; |
Variable* catch_variable = NULL; |
Block* catch_block = NULL; |
- List<Expression*> expressions_in_tail_position_in_catch_block; |
+ ZoneList<Expression*> expressions_in_tail_position_in_catch_block(0, zone()); |
if (tok == Token::CATCH) { |
Consume(Token::CATCH); |
@@ -3174,7 +3174,7 @@ TryStatement* Parser::ParseTryStatement(bool* ok) { |
// For a try-catch construct append return expressions from the catch block |
// to the list of return expressions. |
function_state_->expressions_in_tail_position().AddAll( |
- expressions_in_tail_position_in_catch_block); |
+ expressions_in_tail_position_in_catch_block, zone()); |
DCHECK(finally_block == NULL); |
DCHECK(catch_scope != NULL && catch_variable != NULL); |
@@ -4801,7 +4801,7 @@ ZoneList<Statement*>* Parser::ParseEagerFunctionBody( |
// ES6 14.6.1 Static Semantics: IsInTailPosition |
// Mark collected return expressions that are in tail call position. |
- const List<Expression*>& expressions_in_tail_position = |
+ const ZoneList<Expression*>& expressions_in_tail_position = |
function_state_->expressions_in_tail_position(); |
for (int i = 0; i < expressions_in_tail_position.length(); ++i) { |
expressions_in_tail_position[i]->MarkTail(); |
@@ -5541,6 +5541,12 @@ void ParserTraits::RewriteNonPattern(Type::ExpressionClassifier* classifier, |
} |
+ZoneList<typename ParserTraits::Type::ExpressionClassifier::Error>* |
+ParserTraits::GetReportedErrorList() const { |
+ return parser_->function_state_->GetReportedErrorList(); |
+} |
+ |
+ |
Zone* ParserTraits::zone() const { |
return parser_->function_state_->scope()->zone(); |
} |