Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/interpreter/bytecode-array-builder.cc

Issue 1422033002: [Interpreter] Add support for for..in. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixes for 32-bit. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/interpreter/bytecode-array-builder.h" 5 #include "src/interpreter/bytecode-array-builder.h"
6 6
7 namespace v8 { 7 namespace v8 {
8 namespace internal { 8 namespace internal {
9 namespace interpreter { 9 namespace interpreter {
10 10
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 } 638 }
639 639
640 640
641 BytecodeArrayBuilder& BytecodeArrayBuilder::Return() { 641 BytecodeArrayBuilder& BytecodeArrayBuilder::Return() {
642 Output(Bytecode::kReturn); 642 Output(Bytecode::kReturn);
643 exit_seen_in_block_ = true; 643 exit_seen_in_block_ = true;
644 return *this; 644 return *this;
645 } 645 }
646 646
647 647
648 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInPrepare() {
649 Output(Bytecode::kForInPrepare);
650 return *this;
651 }
652
653
654 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInNext(Register for_in_state) {
655 Output(Bytecode::kForInNext, for_in_state.ToOperand());
656 return *this;
657 }
658
659
660 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInDone(Register for_in_state) {
661 Output(Bytecode::kForInDone, for_in_state.ToOperand());
662 return *this;
663 }
664
665
648 BytecodeArrayBuilder& BytecodeArrayBuilder::EnterBlock() { return *this; } 666 BytecodeArrayBuilder& BytecodeArrayBuilder::EnterBlock() { return *this; }
649 667
650 668
651 BytecodeArrayBuilder& BytecodeArrayBuilder::LeaveBlock() { 669 BytecodeArrayBuilder& BytecodeArrayBuilder::LeaveBlock() {
652 last_block_end_ = bytecodes()->size(); 670 last_block_end_ = bytecodes()->size();
653 exit_seen_in_block_ = false; 671 exit_seen_in_block_ = false;
654 return *this; 672 return *this;
655 } 673 }
656 674
657 675
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 DCHECK_GT(next_consecutive_count_, 0); 1093 DCHECK_GT(next_consecutive_count_, 0);
1076 builder_->BorrowConsecutiveTemporaryRegister(next_consecutive_register_); 1094 builder_->BorrowConsecutiveTemporaryRegister(next_consecutive_register_);
1077 allocated_.push_back(next_consecutive_register_); 1095 allocated_.push_back(next_consecutive_register_);
1078 next_consecutive_count_--; 1096 next_consecutive_count_--;
1079 return Register(next_consecutive_register_++); 1097 return Register(next_consecutive_register_++);
1080 } 1098 }
1081 1099
1082 } // namespace interpreter 1100 } // namespace interpreter
1083 } // namespace internal 1101 } // namespace internal
1084 } // namespace v8 1102 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698