OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/lookup.h" | 5 #include "src/lookup.h" |
6 | 6 |
7 #include "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" |
8 #include "src/deoptimizer.h" | 8 #include "src/deoptimizer.h" |
9 #include "src/elements.h" | 9 #include "src/elements.h" |
10 #include "src/isolate-inl.h" | 10 #include "src/isolate-inl.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 state_ = LookupInHolder(map, holder); | 73 state_ = LookupInHolder(map, holder); |
74 } while (!IsFound()); | 74 } while (!IsFound()); |
75 | 75 |
76 if (holder != *holder_) { | 76 if (holder != *holder_) { |
77 holder_ = handle(holder, isolate_); | 77 holder_ = handle(holder, isolate_); |
78 holder_map_ = handle(map, isolate_); | 78 holder_map_ = handle(map, isolate_); |
79 } | 79 } |
80 } | 80 } |
81 | 81 |
82 | 82 |
83 void LookupIterator::RestartInternal(InterceptorState interceptor_state) { | 83 void LookupIterator::RestartLookupForNonMaskingInterceptors() { |
| 84 interceptor_state_ = InterceptorState::kProcessNonMasking; |
84 state_ = NOT_FOUND; | 85 state_ = NOT_FOUND; |
85 interceptor_state_ = interceptor_state; | |
86 property_details_ = PropertyDetails::Empty(); | 86 property_details_ = PropertyDetails::Empty(); |
| 87 number_ = DescriptorArray::kNotFound; |
87 holder_ = initial_holder_; | 88 holder_ = initial_holder_; |
88 holder_map_ = handle(holder_->map(), isolate_); | 89 holder_map_ = handle(holder_->map(), isolate_); |
89 number_ = DescriptorArray::kNotFound; | |
90 Next(); | 90 Next(); |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 // static | 94 // static |
95 Handle<JSReceiver> LookupIterator::GetRoot(Isolate* isolate, | 95 Handle<JSReceiver> LookupIterator::GetRoot(Isolate* isolate, |
96 Handle<Object> receiver, | 96 Handle<Object> receiver, |
97 uint32_t index) { | 97 uint32_t index) { |
98 if (receiver->IsJSReceiver()) return Handle<JSReceiver>::cast(receiver); | 98 if (receiver->IsJSReceiver()) return Handle<JSReceiver>::cast(receiver); |
99 // Strings are the only objects with properties (only elements) directly on | 99 // Strings are the only objects with properties (only elements) directly on |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 // Fall through. | 715 // Fall through. |
716 default: | 716 default: |
717 return NOT_FOUND; | 717 return NOT_FOUND; |
718 } | 718 } |
719 UNREACHABLE(); | 719 UNREACHABLE(); |
720 return state_; | 720 return state_; |
721 } | 721 } |
722 | 722 |
723 } // namespace internal | 723 } // namespace internal |
724 } // namespace v8 | 724 } // namespace v8 |
OLD | NEW |