| 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();
|
| }
|
|
|