Index: src/lookup.h |
diff --git a/src/lookup.h b/src/lookup.h |
index ac5c27db5dd54832ef4053daccf1df9619a15e91..14ca010d31d8477d531b0215aef03dd4073f1d61 100644 |
--- a/src/lookup.h |
+++ b/src/lookup.h |
@@ -34,7 +34,6 @@ class LookupIterator FINAL BASE_EMBEDDED { |
INTERCEPTOR, |
JSPROXY, |
NOT_FOUND, |
- UNKNOWN, // Dictionary-mode holder map without a holder. |
ACCESSOR, |
DATA, |
TRANSITION, |
@@ -50,11 +49,10 @@ class LookupIterator FINAL BASE_EMBEDDED { |
property_details_(NONE, NORMAL, Representation::None()), |
isolate_(name->GetIsolate()), |
name_(name), |
- maybe_receiver_(receiver), |
+ receiver_(receiver), |
number_(DescriptorArray::kNotFound) { |
- Handle<JSReceiver> root = GetRoot(); |
- holder_map_ = handle(root->map(), isolate_); |
- maybe_holder_ = root; |
+ holder_ = GetRoot(); |
+ holder_map_ = handle(holder_->map(), isolate_); |
Next(); |
} |
@@ -67,8 +65,8 @@ class LookupIterator FINAL BASE_EMBEDDED { |
isolate_(name->GetIsolate()), |
name_(name), |
holder_map_(holder->map(), isolate_), |
- maybe_receiver_(receiver), |
- maybe_holder_(holder), |
+ receiver_(receiver), |
+ holder_(holder), |
number_(DescriptorArray::kNotFound) { |
Next(); |
} |
@@ -85,9 +83,7 @@ class LookupIterator FINAL BASE_EMBEDDED { |
} |
Factory* factory() const { return isolate_->factory(); } |
- Handle<Object> GetReceiver() const { |
- return maybe_receiver_.ToHandleChecked(); |
- } |
+ Handle<Object> GetReceiver() const { return receiver_; } |
Handle<JSObject> GetStoreTarget() const; |
bool is_dictionary_holder() const { return holder_map_->is_dictionary_map(); } |
Handle<Map> transition_map() const { |
@@ -97,7 +93,7 @@ class LookupIterator FINAL BASE_EMBEDDED { |
template <class T> |
Handle<T> GetHolder() const { |
DCHECK(IsFound()); |
- return Handle<T>::cast(maybe_holder_.ToHandleChecked()); |
+ return Handle<T>::cast(holder_); |
} |
Handle<JSReceiver> GetRoot() const; |
bool HolderIsReceiverOrHiddenPrototype() const; |
@@ -154,13 +150,6 @@ class LookupIterator FINAL BASE_EMBEDDED { |
bool IsBootstrapping() const; |
- // Methods that fetch data from the holder ensure they always have a holder. |
- // This means the receiver needs to be present as opposed to just the receiver |
- // map. Other objects in the prototype chain are transitively guaranteed to be |
- // present via the receiver map. |
- bool is_guaranteed_to_have_holder() const { |
- return !maybe_receiver_.is_null(); |
- } |
bool check_hidden() const { return (configuration_ & kHidden) != 0; } |
bool check_interceptor() const { |
return !IsBootstrapping() && (configuration_ & kInterceptor) != 0; |
@@ -198,8 +187,8 @@ class LookupIterator FINAL BASE_EMBEDDED { |
Handle<Name> name_; |
Handle<Map> holder_map_; |
Handle<Map> transition_map_; |
- MaybeHandle<Object> maybe_receiver_; |
- MaybeHandle<JSReceiver> maybe_holder_; |
+ Handle<Object> receiver_; |
+ Handle<JSReceiver> holder_; |
int number_; |
}; |