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 |