| 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/interpreter/interpreter.h" | 5 #include "src/interpreter/interpreter.h" |
| 6 | 6 |
| 7 #include <fstream> | 7 #include <fstream> |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "src/ast/prettyprinter.h" | 10 #include "src/ast/prettyprinter.h" |
| (...skipping 2611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2622 __ Dispatch(); | 2622 __ Dispatch(); |
| 2623 } | 2623 } |
| 2624 __ Bind(&if_slow); | 2624 __ Bind(&if_slow); |
| 2625 { | 2625 { |
| 2626 // Record the fact that we hit the for-in slow path. | 2626 // Record the fact that we hit the for-in slow path. |
| 2627 Node* vector_index = __ BytecodeOperandIdx(3); | 2627 Node* vector_index = __ BytecodeOperandIdx(3); |
| 2628 Node* type_feedback_vector = __ LoadTypeFeedbackVector(); | 2628 Node* type_feedback_vector = __ LoadTypeFeedbackVector(); |
| 2629 Node* megamorphic_sentinel = | 2629 Node* megamorphic_sentinel = |
| 2630 __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_)); | 2630 __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_)); |
| 2631 __ StoreFixedArrayElement(type_feedback_vector, vector_index, | 2631 __ StoreFixedArrayElement(type_feedback_vector, vector_index, |
| 2632 megamorphic_sentinel, SKIP_WRITE_BARRIER); | 2632 megamorphic_sentinel, 0, SKIP_WRITE_BARRIER); |
| 2633 | 2633 |
| 2634 // Need to filter the {key} for the {receiver}. | 2634 // Need to filter the {key} for the {receiver}. |
| 2635 Node* context = __ GetContext(); | 2635 Node* context = __ GetContext(); |
| 2636 Callable callable = CodeFactory::ForInFilter(assembler->isolate()); | 2636 Callable callable = CodeFactory::ForInFilter(assembler->isolate()); |
| 2637 Node* result = __ CallStub(callable, context, key, receiver); | 2637 Node* result = __ CallStub(callable, context, key, receiver); |
| 2638 __ SetAccumulator(result); | 2638 __ SetAccumulator(result); |
| 2639 __ Dispatch(); | 2639 __ Dispatch(); |
| 2640 } | 2640 } |
| 2641 } | 2641 } |
| 2642 | 2642 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2766 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, | 2766 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, |
| 2767 __ SmiTag(new_state)); | 2767 __ SmiTag(new_state)); |
| 2768 __ SetAccumulator(old_state); | 2768 __ SetAccumulator(old_state); |
| 2769 | 2769 |
| 2770 __ Dispatch(); | 2770 __ Dispatch(); |
| 2771 } | 2771 } |
| 2772 | 2772 |
| 2773 } // namespace interpreter | 2773 } // namespace interpreter |
| 2774 } // namespace internal | 2774 } // namespace internal |
| 2775 } // namespace v8 | 2775 } // namespace v8 |
| OLD | NEW |