From 49e4aebb986bbbf8739c113adf5c5f23c8d698a8 Mon Sep 17 00:00:00 2001 From: "verwaest@chromium.org" Date: Thu, 21 Aug 2014 08:19:05 +0000 Subject: [PATCH] Remove last LookupOwnRealNamedProperty usage from runtime.cc BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/494663002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/property.h | 3 +-- src/runtime.cc | 11 ++++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/property.h b/src/property.h index 125f927..ab2dcef 100644 --- a/src/property.h +++ b/src/property.h @@ -252,8 +252,7 @@ class LookupResult V8_FINAL BASE_EMBEDDED { } bool IsNormal() const { - DCHECK(!(details_.type() == NORMAL && !IsFound())); - return IsDescriptorOrDictionary() && type() == NORMAL; + return IsFound() && IsDescriptorOrDictionary() && type() == NORMAL; } bool IsConstant() const { diff --git a/src/runtime.cc b/src/runtime.cc index dc3fc75..3ebd6b5 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -5027,15 +5027,12 @@ RUNTIME_FUNCTION(Runtime_DefineDataPropertyUnchecked) { return isolate->heap()->undefined_value(); } - LookupResult lookup(isolate); - js_object->LookupOwnRealNamedProperty(name, &lookup); + LookupIterator it(js_object, name, LookupIterator::CHECK_PROPERTY); // Take special care when attributes are different and there is already - // a property. For simplicity we normalize the property which enables us - // to not worry about changing the instance_descriptor and creating a new - // map. - if (lookup.IsFound() && - (attr != lookup.GetAttributes() || lookup.IsPropertyCallbacks())) { + // a property. + if (it.IsFound() && it.HasProperty() && + it.property_kind() == LookupIterator::ACCESSOR) { // Use IgnoreAttributes version since a readonly property may be // overridden and SetProperty does not allow this. Handle result; -- 2.7.4