summaryrefslogtreecommitdiff
path: root/deps/v8/src/lookup.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/lookup.h')
-rw-r--r--deps/v8/src/lookup.h12
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_;