| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/ast/ast.h" | 5 #include "src/ast/ast.h" |
| 6 #include "src/messages.h" | 6 #include "src/messages.h" |
| 7 #include "src/parsing/parameter-initializer-rewriter.h" | 7 #include "src/parsing/parameter-initializer-rewriter.h" |
| 8 #include "src/parsing/parser.h" | 8 #include "src/parsing/parser.h" |
| 9 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 rewriter.parser_ = parser; | 43 rewriter.parser_ = parser; |
| 44 rewriter.context_ = ASSIGNMENT; | 44 rewriter.context_ = ASSIGNMENT; |
| 45 rewriter.pattern_ = to_rewrite; | 45 rewriter.pattern_ = to_rewrite; |
| 46 rewriter.block_ = nullptr; | 46 rewriter.block_ = nullptr; |
| 47 rewriter.descriptor_ = nullptr; | 47 rewriter.descriptor_ = nullptr; |
| 48 rewriter.names_ = nullptr; | 48 rewriter.names_ = nullptr; |
| 49 rewriter.ok_ = &ok; | 49 rewriter.ok_ = &ok; |
| 50 rewriter.recursion_level_ = 0; | 50 rewriter.recursion_level_ = 0; |
| 51 | 51 |
| 52 rewriter.RecurseIntoSubpattern(rewriter.pattern_, nullptr); | 52 rewriter.RecurseIntoSubpattern(rewriter.pattern_, nullptr); |
| 53 DCHECK(ok); | 53 CHECK(ok); |
| 54 } | 54 } |
| 55 | 55 |
| 56 | 56 |
| 57 Expression* Parser::PatternRewriter::RewriteDestructuringAssignment( | 57 Expression* Parser::PatternRewriter::RewriteDestructuringAssignment( |
| 58 Parser* parser, Assignment* assignment, Scope* scope) { | 58 Parser* parser, Assignment* assignment, Scope* scope) { |
| 59 DCHECK_NOT_NULL(assignment); | 59 DCHECK_NOT_NULL(assignment); |
| 60 DCHECK_EQ(Token::ASSIGN, assignment->op()); | 60 DCHECK_EQ(Token::ASSIGN, assignment->op()); |
| 61 auto to_rewrite = | 61 auto to_rewrite = |
| 62 parser->factory()->NewRewritableAssignmentExpression(assignment); | 62 parser->factory()->NewRewritableAssignmentExpression(assignment); |
| 63 RewriteDestructuringAssignment(parser, to_rewrite, scope); | 63 RewriteDestructuringAssignment(parser, to_rewrite, scope); |
| (...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 zone()); | 568 zone()); |
| 569 } | 569 } |
| 570 | 570 |
| 571 | 571 |
| 572 // =============== UNREACHABLE ============================= | 572 // =============== UNREACHABLE ============================= |
| 573 | 573 |
| 574 void Parser::PatternRewriter::Visit(AstNode* node) { UNREACHABLE(); } | 574 void Parser::PatternRewriter::Visit(AstNode* node) { UNREACHABLE(); } |
| 575 | 575 |
| 576 #define NOT_A_PATTERN(Node) \ | 576 #define NOT_A_PATTERN(Node) \ |
| 577 void Parser::PatternRewriter::Visit##Node(v8::internal::Node*) { \ | 577 void Parser::PatternRewriter::Visit##Node(v8::internal::Node*) { \ |
| 578 UNREACHABLE(); \ | 578 parser_->ReportMessage(MessageTemplate::kUnsupported); \ |
| 579 *ok_ = false; \ |
| 579 } | 580 } |
| 580 | 581 |
| 581 NOT_A_PATTERN(BinaryOperation) | 582 NOT_A_PATTERN(BinaryOperation) |
| 582 NOT_A_PATTERN(Block) | 583 NOT_A_PATTERN(Block) |
| 583 NOT_A_PATTERN(BreakStatement) | 584 NOT_A_PATTERN(BreakStatement) |
| 584 NOT_A_PATTERN(Call) | 585 NOT_A_PATTERN(Call) |
| 585 NOT_A_PATTERN(CallNew) | 586 NOT_A_PATTERN(CallNew) |
| 586 NOT_A_PATTERN(CallRuntime) | 587 NOT_A_PATTERN(CallRuntime) |
| 587 NOT_A_PATTERN(CaseClause) | 588 NOT_A_PATTERN(CaseClause) |
| 588 NOT_A_PATTERN(ClassLiteral) | 589 NOT_A_PATTERN(ClassLiteral) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 619 NOT_A_PATTERN(TryFinallyStatement) | 620 NOT_A_PATTERN(TryFinallyStatement) |
| 620 NOT_A_PATTERN(UnaryOperation) | 621 NOT_A_PATTERN(UnaryOperation) |
| 621 NOT_A_PATTERN(VariableDeclaration) | 622 NOT_A_PATTERN(VariableDeclaration) |
| 622 NOT_A_PATTERN(WhileStatement) | 623 NOT_A_PATTERN(WhileStatement) |
| 623 NOT_A_PATTERN(WithStatement) | 624 NOT_A_PATTERN(WithStatement) |
| 624 NOT_A_PATTERN(Yield) | 625 NOT_A_PATTERN(Yield) |
| 625 | 626 |
| 626 #undef NOT_A_PATTERN | 627 #undef NOT_A_PATTERN |
| 627 } // namespace internal | 628 } // namespace internal |
| 628 } // namespace v8 | 629 } // namespace v8 |
| OLD | NEW |