diff options
Diffstat (limited to 'deps/v8/src/lookup.h')
-rw-r--r-- | deps/v8/src/lookup.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/deps/v8/src/lookup.h b/deps/v8/src/lookup.h index 90edd8b43d..3888ed6240 100644 --- a/deps/v8/src/lookup.h +++ b/deps/v8/src/lookup.h @@ -56,7 +56,7 @@ class LookupIterator final BASE_EMBEDDED { // kMaxUInt32 isn't a valid index. index_(kMaxUInt32), receiver_(receiver), - holder_(GetRoot(receiver_, isolate_)), + holder_(GetRoot(isolate_, receiver)), holder_map_(holder_->map(), isolate_), initial_holder_(holder_), number_(DescriptorArray::kNotFound) { @@ -102,7 +102,7 @@ class LookupIterator final BASE_EMBEDDED { name_(), index_(index), receiver_(receiver), - holder_(GetRoot(receiver_, isolate_)), + holder_(GetRoot(isolate, receiver, index)), holder_map_(holder_->map(), isolate_), initial_holder_(holder_), number_(DescriptorArray::kNotFound) { @@ -168,7 +168,7 @@ class LookupIterator final BASE_EMBEDDED { Handle<Name> GetName() { if (name_.is_null()) { DCHECK(IsElement()); - name_ = isolate_->factory()->Uint32ToString(index_); + name_ = factory()->Uint32ToString(index_); } return name_; } @@ -183,6 +183,7 @@ class LookupIterator final BASE_EMBEDDED { state_ = NOT_FOUND; } + Heap* heap() const { return isolate_->heap(); } Factory* factory() const { return isolate_->factory(); } Handle<Object> GetReceiver() const { return receiver_; } Handle<JSObject> GetStoreTarget() const; @@ -196,7 +197,8 @@ class LookupIterator final BASE_EMBEDDED { DCHECK(IsFound()); return Handle<T>::cast(holder_); } - static Handle<JSReceiver> GetRoot(Handle<Object> receiver, Isolate* isolate); + static Handle<JSReceiver> GetRoot(Isolate* isolate, Handle<Object> receiver, + uint32_t index = kMaxUInt32); bool HolderIsReceiverOrHiddenPrototype() const; /* ACCESS_CHECK */ @@ -220,6 +222,8 @@ class LookupIterator final BASE_EMBEDDED { void TransitionToAccessorProperty(AccessorComponent component, Handle<Object> accessor, PropertyAttributes attributes); + void TransitionToAccessorPair(Handle<Object> pair, + PropertyAttributes attributes); PropertyDetails property_details() const { DCHECK(has_property_); return property_details_; |