| Index: src/lookup.cc
|
| diff --git a/src/lookup.cc b/src/lookup.cc
|
| index 95d5e54d53f85ccd3ccdbb463e95e24c8ab266bd..3df8752c01a7108ce145875a55d51bdab4185293 100644
|
| --- a/src/lookup.cc
|
| +++ b/src/lookup.cc
|
| @@ -51,7 +51,6 @@ void LookupIterator::Start() {
|
|
|
| has_property_ = false;
|
| state_ = NOT_FOUND;
|
| - number_ = DescriptorArray::kNotFound;
|
| holder_ = initial_holder_;
|
|
|
| JSReceiver* holder = *holder_;
|
| @@ -110,6 +109,7 @@ template <bool is_element>
|
| void LookupIterator::RestartInternal(InterceptorState interceptor_state) {
|
| interceptor_state_ = interceptor_state;
|
| property_details_ = PropertyDetails::Empty();
|
| + number_ = DescriptorArray::kNotFound;
|
| Start<is_element>();
|
| }
|
|
|
| @@ -617,9 +617,9 @@ void LookupIterator::WriteDataValue(Handle<Object> value) {
|
| }
|
| }
|
|
|
| -
|
| +template <bool is_element>
|
| bool LookupIterator::SkipInterceptor(JSObject* holder) {
|
| - auto info = GetInterceptor(holder);
|
| + auto info = GetInterceptor<is_element>(holder);
|
| // TODO(dcarney): check for symbol/can_intercept_symbols here as well.
|
| if (info->non_masking()) {
|
| switch (interceptor_state_) {
|
| @@ -689,7 +689,7 @@ LookupIterator::State LookupIterator::LookupInSpecialHolder(
|
| // Fall through.
|
| case ACCESS_CHECK:
|
| if (check_interceptor() && HasInterceptor<is_element>(map) &&
|
| - !SkipInterceptor(JSObject::cast(holder))) {
|
| + !SkipInterceptor<is_element>(JSObject::cast(holder))) {
|
| if (is_element || !name_->IsPrivate()) return INTERCEPTOR;
|
| }
|
| // Fall through.
|
|
|