From 46ac7c2cc105072cda448a3ffba19b6fbb04e288 Mon Sep 17 00:00:00 2001 From: "verwaest@chromium.org" Date: Mon, 25 Aug 2014 11:47:31 +0000 Subject: [PATCH] Remove HolderIsNonGlobalHiddenPrototype since OWN* now also checks globals BUG= R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/502903002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/lookup-inl.h | 2 +- src/lookup.cc | 10 ---------- src/lookup.h | 2 -- src/objects.cc | 3 +-- 4 files changed, 2 insertions(+), 15 deletions(-) diff --git a/src/lookup-inl.h b/src/lookup-inl.h index ae4b66df01..d87221e7c9 100644 --- a/src/lookup-inl.h +++ b/src/lookup-inl.h @@ -23,7 +23,7 @@ JSReceiver* LookupIterator::NextHolder(Map* map) { !(check_hidden() && next->map()->is_hidden_prototype()) && // Always lookup behind the JSGlobalProxy into the JSGlobalObject, even // when not checking other hidden prototypes. - !(map->IsJSGlobalProxyMap() && next->IsJSGlobalObject())) { + !map->IsJSGlobalProxyMap()) { return NULL; } diff --git a/src/lookup.cc b/src/lookup.cc index 97fd53522a..5bce620abd 100644 --- a/src/lookup.cc +++ b/src/lookup.cc @@ -273,16 +273,6 @@ bool LookupIterator::HolderIsReceiverOrHiddenPrototype() const { } -bool LookupIterator::HolderIsNonGlobalHiddenPrototype() const { - if (!HolderIsReceiverOrHiddenPrototype()) return false; - Handle receiver = GetReceiver(); - Handle holder = GetHolder(); - if (receiver.is_identical_to(holder)) return false; - if (receiver->IsJSGlobalProxy()) return !holder->IsJSGlobalObject(); - return true; -} - - Handle LookupIterator::FetchValue() const { Object* result = NULL; Handle holder = GetHolder(); diff --git a/src/lookup.h b/src/lookup.h index 89d3233e4f..bf2fb1b59e 100644 --- a/src/lookup.h +++ b/src/lookup.h @@ -100,7 +100,6 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { state_ = NOT_FOUND; } - Heap* heap() const { return isolate_->heap(); } Factory* factory() const { return isolate_->factory(); } Handle GetReceiver() const { return maybe_receiver_.ToHandleChecked(); @@ -118,7 +117,6 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { } Handle GetRoot() const; bool HolderIsReceiverOrHiddenPrototype() const; - bool HolderIsNonGlobalHiddenPrototype() const; /* ACCESS_CHECK */ bool HasAccess(v8::AccessType access_type) const; diff --git a/src/objects.cc b/src/objects.cc index 4832f19e4d..632064397b 100644 --- a/src/objects.cc +++ b/src/objects.cc @@ -3812,7 +3812,7 @@ MaybeHandle JSObject::SetOwnPropertyIgnoreAttributes( PropertyAttributes attributes, ExecutableAccessorInfoHandling handling) { DCHECK(!value->IsTheHole()); - LookupIterator it(object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR); + LookupIterator it(object, name, LookupIterator::OWN_SKIP_INTERCEPTOR); bool is_observed = object->map()->is_observed() && *name != it.isolate()->heap()->hidden_string(); for (; it.IsFound(); it.Next()) { @@ -3831,7 +3831,6 @@ MaybeHandle JSObject::SetOwnPropertyIgnoreAttributes( case LookupIterator::PROPERTY: { if (!it.HasProperty()) break; - if (it.HolderIsNonGlobalHiddenPrototype()) break; PropertyDetails details = it.property_details(); Handle old_value = it.isolate()->factory()->the_hole_value(); switch (it.property_kind()) {