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/objects-inl.h" | 7 #include "src/objects-inl.h" |
8 #include "src/parsing/parameter-initializer-rewriter.h" | 8 #include "src/parsing/parameter-initializer-rewriter.h" |
9 #include "src/parsing/parser.h" | 9 #include "src/parsing/parser.h" |
10 | 10 |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 factory()->NewExpressionStatement( | 441 factory()->NewExpressionStatement( |
442 factory()->NewAssignment( | 442 factory()->NewAssignment( |
443 Token::ASSIGN, factory()->NewVariableProxy(done), | 443 Token::ASSIGN, factory()->NewVariableProxy(done), |
444 factory()->NewBooleanLiteral(true, nopos), nopos), | 444 factory()->NewBooleanLiteral(true, nopos), nopos), |
445 nopos), | 445 nopos), |
446 zone()); | 446 zone()); |
447 next_block->statements()->Add( | 447 next_block->statements()->Add( |
448 factory()->NewExpressionStatement( | 448 factory()->NewExpressionStatement( |
449 parser_->BuildIteratorNextResult( | 449 parser_->BuildIteratorNextResult( |
450 factory()->NewVariableProxy(iterator), result, | 450 factory()->NewVariableProxy(iterator), result, |
451 kNoSourcePosition), | 451 IteratorType::kNormal, kNoSourcePosition), |
452 kNoSourcePosition), | 452 kNoSourcePosition), |
453 zone()); | 453 zone()); |
454 next_block->statements()->Add(inner_if, zone()); | 454 next_block->statements()->Add(inner_if, zone()); |
455 | 455 |
456 if_not_done = factory()->NewIfStatement( | 456 if_not_done = factory()->NewIfStatement( |
457 factory()->NewUnaryOperation( | 457 factory()->NewUnaryOperation( |
458 Token::NOT, factory()->NewVariableProxy(done), kNoSourcePosition), | 458 Token::NOT, factory()->NewVariableProxy(done), kNoSourcePosition), |
459 next_block, factory()->NewEmptyStatement(kNoSourcePosition), | 459 next_block, factory()->NewEmptyStatement(kNoSourcePosition), |
460 kNoSourcePosition); | 460 kNoSourcePosition); |
461 } | 461 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 // done = true; | 515 // done = true; |
516 Statement* set_done = factory()->NewExpressionStatement( | 516 Statement* set_done = factory()->NewExpressionStatement( |
517 factory()->NewAssignment( | 517 factory()->NewAssignment( |
518 Token::ASSIGN, factory()->NewVariableProxy(done), | 518 Token::ASSIGN, factory()->NewVariableProxy(done), |
519 factory()->NewBooleanLiteral(true, nopos), nopos), | 519 factory()->NewBooleanLiteral(true, nopos), nopos), |
520 nopos); | 520 nopos); |
521 | 521 |
522 // result = IteratorNext(iterator); | 522 // result = IteratorNext(iterator); |
523 Statement* get_next = factory()->NewExpressionStatement( | 523 Statement* get_next = factory()->NewExpressionStatement( |
524 parser_->BuildIteratorNextResult(factory()->NewVariableProxy(iterator), | 524 parser_->BuildIteratorNextResult(factory()->NewVariableProxy(iterator), |
525 result, nopos), | 525 result, IteratorType::kNormal, nopos), |
526 nopos); | 526 nopos); |
527 | 527 |
528 // %AppendElement(array, result.value); | 528 // %AppendElement(array, result.value); |
529 Statement* append_element; | 529 Statement* append_element; |
530 { | 530 { |
531 auto args = new (zone()) ZoneList<Expression*>(2, zone()); | 531 auto args = new (zone()) ZoneList<Expression*>(2, zone()); |
532 args->Add(factory()->NewVariableProxy(array), zone()); | 532 args->Add(factory()->NewVariableProxy(array), zone()); |
533 args->Add(factory()->NewProperty( | 533 args->Add(factory()->NewProperty( |
534 factory()->NewVariableProxy(result), | 534 factory()->NewVariableProxy(result), |
535 factory()->NewStringLiteral( | 535 factory()->NewStringLiteral( |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 | 584 |
585 block_->statements()->Add(loop, zone()); | 585 block_->statements()->Add(loop, zone()); |
586 RecurseIntoSubpattern(spread->expression(), | 586 RecurseIntoSubpattern(spread->expression(), |
587 factory()->NewVariableProxy(array)); | 587 factory()->NewVariableProxy(array)); |
588 } | 588 } |
589 | 589 |
590 Expression* closing_condition = factory()->NewUnaryOperation( | 590 Expression* closing_condition = factory()->NewUnaryOperation( |
591 Token::NOT, factory()->NewVariableProxy(done), nopos); | 591 Token::NOT, factory()->NewVariableProxy(done), nopos); |
592 | 592 |
593 parser_->FinalizeIteratorUse(scope(), completion, closing_condition, iterator, | 593 parser_->FinalizeIteratorUse(scope(), completion, closing_condition, iterator, |
594 block_, target); | 594 block_, target, IteratorType::kNormal); |
595 block_ = target; | 595 block_ = target; |
596 } | 596 } |
597 | 597 |
598 | 598 |
599 void Parser::PatternRewriter::VisitArrayLiteral(ArrayLiteral* node) { | 599 void Parser::PatternRewriter::VisitArrayLiteral(ArrayLiteral* node) { |
600 Variable* temp_var = nullptr; | 600 Variable* temp_var = nullptr; |
601 VisitArrayLiteral(node, &temp_var); | 601 VisitArrayLiteral(node, &temp_var); |
602 } | 602 } |
603 | 603 |
604 | 604 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 NOT_A_PATTERN(TryFinallyStatement) | 692 NOT_A_PATTERN(TryFinallyStatement) |
693 NOT_A_PATTERN(UnaryOperation) | 693 NOT_A_PATTERN(UnaryOperation) |
694 NOT_A_PATTERN(VariableDeclaration) | 694 NOT_A_PATTERN(VariableDeclaration) |
695 NOT_A_PATTERN(WhileStatement) | 695 NOT_A_PATTERN(WhileStatement) |
696 NOT_A_PATTERN(WithStatement) | 696 NOT_A_PATTERN(WithStatement) |
697 NOT_A_PATTERN(Yield) | 697 NOT_A_PATTERN(Yield) |
698 | 698 |
699 #undef NOT_A_PATTERN | 699 #undef NOT_A_PATTERN |
700 } // namespace internal | 700 } // namespace internal |
701 } // namespace v8 | 701 } // namespace v8 |
OLD | NEW |