Reviewers: mvstanton,

Message:
PTAL

Description:
Clean up LookupIterator::Configuration naming

BUG=

Please review this at https://codereview.chromium.org/503663003/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+45, -43 lines):
  M src/bootstrapper.cc
  M src/factory.cc
  M src/hydrogen.cc
  M src/ic/ic.cc
  M src/isolate.cc
  M src/lookup.h
  M src/lookup.cc
  M src/lookup-inl.h
  M src/objects.cc
  M src/runtime.cc


Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index fc0af002ab8be2d8f1f4e63787bcb19d0913aed6..1b3f52564f7b700acf50923a197fc624cd1af6dd 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -780,7 +780,7 @@ Handle<JSGlobalProxy> Genesis::CreateNewGlobals(
name, code, prototype, JS_GLOBAL_OBJECT_TYPE, JSGlobalObject::kSize);
 #ifdef DEBUG
     LookupIterator it(prototype, factory()->constructor_string(),
-                      LookupIterator::CHECK_PROPERTY);
+                      LookupIterator::CHECK_OWN_PROPERTY);
     Handle<Object> value = JSReceiver::GetProperty(&it).ToHandleChecked();
     DCHECK(it.IsFound());
     DCHECK_EQ(*isolate()->object_function(), *value);
@@ -2449,7 +2449,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
         }
         case CALLBACKS: {
           Handle<Name> key(descs->GetKey(i));
-          LookupIterator it(to, key, LookupIterator::CHECK_PROPERTY);
+          LookupIterator it(to, key, LookupIterator::CHECK_OWN_PROPERTY);
           // If the property is already there we skip it
           if (it.IsFound() && it.HasProperty()) continue;
           HandleScope inner(isolate());
@@ -2480,7 +2480,7 @@ void Genesis::TransferNamedProperties(Handle<JSObject> from,
         DCHECK(raw_key->IsName());
         // If the property is already there we skip it.
         Handle<Name> key(Name::cast(raw_key));
-        LookupIterator it(to, key, LookupIterator::CHECK_PROPERTY);
+        LookupIterator it(to, key, LookupIterator::CHECK_OWN_PROPERTY);
         if (it.IsFound() && it.HasProperty()) continue;
         // Set the property.
         Handle<Object> value = Handle<Object>(properties->ValueAt(i),
Index: src/factory.cc
diff --git a/src/factory.cc b/src/factory.cc
index 5ecdfcfd2f4aec25c94ab22927b53363715b3b59..9ead7e08107d689666ec38b96bc459a417b8ecb9 100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -2174,7 +2174,7 @@ Handle<JSFunction> Factory::CreateApiFunction(
   if (prototype->IsTheHole()) {
 #ifdef DEBUG
     LookupIterator it(handle(JSObject::cast(result->prototype())),
- constructor_string(), LookupIterator::CHECK_PROPERTY); + constructor_string(), LookupIterator::CHECK_OWN_PROPERTY);
     MaybeHandle<Object> maybe_prop = Object::GetProperty(&it);
     DCHECK(it.IsFound());
     DCHECK(maybe_prop.ToHandleChecked().is_identical_to(result));
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index 1ad5d95bf61ca4328f03cd10ab6cceb54bd060a6..396d11a06e621786ebbfd662d3648b2fe09f8af1 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -5342,7 +5342,7 @@ void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) {

       Handle<GlobalObject> global(current_info()->global_object());
       LookupIterator it(global, variable->name(),
-                        LookupIterator::CHECK_PROPERTY);
+                        LookupIterator::CHECK_OWN_PROPERTY);
GlobalPropertyAccess type = LookupGlobalProperty(variable, &it, LOAD);

       if (type == kUseCell &&
@@ -5797,7 +5797,8 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadNamedField(
         HConstant::cast(checked_object->ActualValue())->handle(isolate()));

     if (object->IsJSObject()) {
- LookupIterator it(object, info->name(), LookupIterator::CHECK_PROPERTY);
+      LookupIterator it(object, info->name(),
+                        LookupIterator::CHECK_OWN_PROPERTY);
       Handle<Object> value = JSObject::GetDataProperty(&it);
       CHECK(it.IsFound());
       return New<HConstant>(value);
@@ -6463,7 +6464,7 @@ void HOptimizedGraphBuilder::HandleGlobalVariableAssignment(
     HValue* value,
     BailoutId ast_id) {
   Handle<GlobalObject> global(current_info()->global_object());
-  LookupIterator it(global, var->name(), LookupIterator::CHECK_PROPERTY);
+ LookupIterator it(global, var->name(), LookupIterator::CHECK_OWN_PROPERTY);
   GlobalPropertyAccess type = LookupGlobalProperty(var, &it, STORE);
   if (type == kUseCell) {
     Handle<PropertyCell> cell = it.GetPropertyCell();
@@ -9055,7 +9056,8 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) {
// access check is not enabled we assume that the function will not change
       // and generate optimized code for calling the function.
       Handle<GlobalObject> global(current_info()->global_object());
- LookupIterator it(global, var->name(), LookupIterator::CHECK_PROPERTY);
+      LookupIterator it(global, var->name(),
+                        LookupIterator::CHECK_OWN_PROPERTY);
       GlobalPropertyAccess type = LookupGlobalProperty(var, &it, LOAD);
       if (type == kUseCell &&
           !current_info()->global_object()->IsAccessCheckNeeded()) {
@@ -10699,7 +10701,7 @@ void HOptimizedGraphBuilder::VisitCompareOperation(CompareOperation* expr) {
         !current_info()->global_object()->IsAccessCheckNeeded()) {
       Handle<String> name = proxy->name();
       Handle<GlobalObject> global(current_info()->global_object());
-      LookupIterator it(global, name, LookupIterator::CHECK_PROPERTY);
+      LookupIterator it(global, name, LookupIterator::CHECK_OWN_PROPERTY);
       Handle<Object> value = JSObject::GetDataProperty(&it);
       if (it.IsFound() && value->IsJSFunction()) {
         Handle<JSFunction> candidate = Handle<JSFunction>::cast(value);
Index: src/ic/ic.cc
diff --git a/src/ic/ic.cc b/src/ic/ic.cc
index 2bd40de8ca09f7867e32bc61461e8ab1daa28b1b..95579ff550edb1967cbb64605135bde685c4bab2 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -281,7 +281,7 @@ bool IC::TryRemoveInvalidPrototypeDependentStub(Handle<Object> receiver,

   if (receiver->IsGlobalObject()) {
     Handle<GlobalObject> global = Handle<GlobalObject>::cast(receiver);
-    LookupIterator it(global, name, LookupIterator::CHECK_PROPERTY);
+    LookupIterator it(global, name, LookupIterator::CHECK_OWN_PROPERTY);
     if (!it.IsFound() || !it.HasProperty()) return false;
     Handle<PropertyCell> cell = it.GetPropertyCell();
     return cell->type()->IsConstant();
Index: src/isolate.cc
diff --git a/src/isolate.cc b/src/isolate.cc
index fc8d34db911cbee2cf19c8be158aef2263d53aaf..ef6935754a814a647d898199a048deb9fa702ff5 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -1057,7 +1057,7 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) { // probably not a valid Error object. In that case, we fall through
           // and capture the stack trace at this throw site.
           LookupIterator lookup(exception_handle, key,
-                                LookupIterator::CHECK_PROPERTY);
+                                LookupIterator::CHECK_OWN_PROPERTY);
           Handle<Object> stack_trace_property;
if (Object::GetProperty(&lookup).ToHandle(&stack_trace_property) &&
               stack_trace_property->IsJSArray()) {
Index: src/lookup-inl.h
diff --git a/src/lookup-inl.h b/src/lookup-inl.h
index a32295bff8229096e84cb8f3bbf197b6a8a79ee7..ae4b66df01d74c662bd58dc1a9c18427bd6dafc8 100644
--- a/src/lookup-inl.h
+++ b/src/lookup-inl.h
@@ -19,7 +19,7 @@ JSReceiver* LookupIterator::NextHolder(Map* map) {
   DCHECK(!next->map()->IsGlobalObjectMap() ||
          next->map()->is_hidden_prototype());

-  if (!check_derived() &&
+  if (!check_prototype_chain() &&
       !(check_hidden() && next->map()->is_hidden_prototype()) &&
// Always lookup behind the JSGlobalProxy into the JSGlobalObject, even
       // when not checking other hidden prototypes.
Index: src/lookup.cc
diff --git a/src/lookup.cc b/src/lookup.cc
index 58e3032e502d2e2fbfed4d7ac855dff500b86e28..97fd53522a91fbb5bf082d0e3100d31ac0f6f70c 100644
--- a/src/lookup.cc
+++ b/src/lookup.cc
@@ -252,7 +252,7 @@ void LookupIterator::TransitionToAccessorProperty(
 bool LookupIterator::HolderIsReceiverOrHiddenPrototype() const {
   DCHECK(has_property_ || state_ == INTERCEPTOR || state_ == JSPROXY);
   // Optimization that only works if configuration_ is not mutable.
-  if (!check_derived()) return true;
+  if (!check_prototype_chain()) return true;
   DisallowHeapAllocation no_gc;
   Handle<Object> receiver = GetReceiver();
   if (!receiver->IsJSReceiver()) return false;
Index: src/lookup.h
diff --git a/src/lookup.h b/src/lookup.h
index 1e5ab0772dc0e6b48560a0487506daec1fd1bd20..8d2b21979f25d198ab941263f077c161cdb1d8a1 100644
--- a/src/lookup.h
+++ b/src/lookup.h
@@ -16,19 +16,21 @@ class LookupIterator V8_FINAL BASE_EMBEDDED {
  public:
   enum Configuration {
     // Configuration bits.
-    CHECK_HIDDEN_PROPERTY = 1 << 0,
-    CHECK_DERIVED_PROPERTY = 1 << 1,
-    CHECK_INTERCEPTOR = 1 << 2,
-    CHECK_ACCESS_CHECK = 1 << 3,
+    kAccessCheck = 1 << 0,
+    kHidden = 1 << 1,
+    kInterceptor = 1 << 2,
+    kPrototypeChain = 1 << 3,

     // Convience combinations of bits.
-    CHECK_PROPERTY = 0,
-    CHECK_OWN = CHECK_ACCESS_CHECK | CHECK_INTERCEPTOR,
- CHECK_HIDDEN_SKIP_INTERCEPTOR = CHECK_HIDDEN_PROPERTY | CHECK_ACCESS_CHECK,
-    CHECK_DERIVED_SKIP_INTERCEPTOR =
-        CHECK_HIDDEN_SKIP_INTERCEPTOR | CHECK_DERIVED_PROPERTY,
-    CHECK_DERIVED = CHECK_DERIVED_SKIP_INTERCEPTOR | CHECK_INTERCEPTOR,
-    CHECK_HIDDEN = CHECK_HIDDEN_SKIP_INTERCEPTOR | CHECK_INTERCEPTOR
+    CHECK_OWN_PROPERTY = 0,
+    CHECK_OWN_SKIP_INTERCEPTOR = kAccessCheck,
+    CHECK_OWN = kAccessCheck | kInterceptor,
+    CHECK_HIDDEN_PROPERTY = kHidden,
+    CHECK_HIDDEN_SKIP_INTERCEPTOR = kAccessCheck | kHidden,
+    CHECK_HIDDEN = kAccessCheck | kHidden | kInterceptor,
+    CHECK_DERIVED_PROPERTY = kHidden | kPrototypeChain,
+ CHECK_DERIVED_SKIP_INTERCEPTOR = kAccessCheck | kHidden | kPrototypeChain,
+    CHECK_DERIVED = kAccessCheck | kHidden | kPrototypeChain | kInterceptor
   };

   enum State {
@@ -191,17 +193,15 @@ class LookupIterator V8_FINAL BASE_EMBEDDED {
   bool is_guaranteed_to_have_holder() const {
     return !maybe_receiver_.is_null();
   }
-  bool check_interceptor() const {
-    return !IsBootstrapping() && (configuration_ & CHECK_INTERCEPTOR) != 0;
-  }
-  bool check_derived() const {
-    return (configuration_ & CHECK_DERIVED_PROPERTY) != 0;
+  bool check_access_check() const {
+    return (configuration_ & kAccessCheck) != 0;
   }
-  bool check_hidden() const {
-    return (configuration_ & CHECK_HIDDEN_PROPERTY) != 0;
+  bool check_hidden() const { return (configuration_ & kHidden) != 0; }
+  bool check_interceptor() const {
+    return !IsBootstrapping() && (configuration_ & kInterceptor) != 0;
   }
-  bool check_access_check() const {
-    return (configuration_ & CHECK_ACCESS_CHECK) != 0;
+  bool check_prototype_chain() const {
+    return (configuration_ & kPrototypeChain) != 0;
   }
   int descriptor_number() const {
     DCHECK(has_property_);
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index ad31f91f1f893c27d500e2b7379ca2b0aa1f7536..84653ed8fbf6071971f81d82518b95189f4054eb 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -3787,7 +3787,7 @@ void JSObject::WriteToField(int descriptor, Object* value) {
 void JSObject::AddProperty(Handle<JSObject> object, Handle<Name> name,
                            Handle<Object> value,
                            PropertyAttributes attributes) {
-  LookupIterator it(object, name, LookupIterator::CHECK_PROPERTY);
+  LookupIterator it(object, name, LookupIterator::CHECK_OWN_PROPERTY);
 #ifdef DEBUG
   uint32_t index;
   DCHECK(!object->IsJSProxy());
@@ -4692,7 +4692,7 @@ void JSObject::DeleteHiddenProperty(Handle<JSObject> object, Handle<Name> key) {

 bool JSObject::HasHiddenProperties(Handle<JSObject> object) {
   Handle<Name> hidden = object->GetIsolate()->factory()->hidden_string();
-  LookupIterator it(object, hidden, LookupIterator::CHECK_PROPERTY);
+  LookupIterator it(object, hidden, LookupIterator::CHECK_OWN_PROPERTY);
   Maybe<PropertyAttributes> maybe = GetPropertyAttributes(&it);
// Cannot get an exception since the hidden_string isn't accessible to JS.
   DCHECK(maybe.has_value);
@@ -4727,7 +4727,7 @@ Object* JSObject::GetHiddenPropertiesHashTable() {
   } else {
     Isolate* isolate = GetIsolate();
     LookupIterator it(handle(this), isolate->factory()->hidden_string(),
-                      LookupIterator::CHECK_PROPERTY);
+                      LookupIterator::CHECK_OWN_PROPERTY);
     if (it.IsFound() && it.HasProperty()) {
       DCHECK_EQ(LookupIterator::DATA, it.property_kind());
       return *it.GetDataValue();
@@ -6174,7 +6174,7 @@ MaybeHandle<Object> JSObject::DefineAccessor(Handle<JSObject> object,
            setter->IsNull());
     // At least one of the accessors needs to be a new value.
     DCHECK(!getter->IsNull() || !setter->IsNull());
-    LookupIterator it(object, name, LookupIterator::CHECK_PROPERTY);
+    LookupIterator it(object, name, LookupIterator::CHECK_OWN_PROPERTY);
     if (!getter->IsNull()) {
       it.TransitionToAccessorProperty(ACCESSOR_GETTER, getter, attributes);
     }
@@ -12859,7 +12859,7 @@ bool JSArray::WouldChangeReadOnlyLength(Handle<JSArray> array,
   CHECK(array->length()->ToArrayIndex(&length));
   if (length <= index) {
LookupIterator it(array, array->GetIsolate()->factory()->length_string(),
-                      LookupIterator::CHECK_PROPERTY);
+                      LookupIterator::CHECK_OWN_PROPERTY);
     CHECK(it.IsFound());
     CHECK(it.HasProperty());
     return it.IsReadOnly();
@@ -13246,7 +13246,7 @@ MaybeHandle<JSObject> JSObject::GetKeysForIndexedInterceptor(

 Maybe<bool> JSObject::HasRealNamedProperty(Handle<JSObject> object,
                                            Handle<Name> key) {
-  LookupIterator it(object, key, LookupIterator::CHECK_ACCESS_CHECK);
+ LookupIterator it(object, key, LookupIterator::CHECK_OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe_result = GetPropertyAttributes(&it);
   if (!maybe_result.has_value) return Maybe<bool>();
   return maybe(it.IsFound());
@@ -13284,7 +13284,7 @@ Maybe<bool> JSObject::HasRealElementProperty(Handle<JSObject> object,

 Maybe<bool> JSObject::HasRealNamedCallbackProperty(Handle<JSObject> object,
                                                    Handle<Name> key) {
-  LookupIterator it(object, key, LookupIterator::CHECK_ACCESS_CHECK);
+ LookupIterator it(object, key, LookupIterator::CHECK_OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe_result = GetPropertyAttributes(&it);
   if (!maybe_result.has_value) return Maybe<bool>();
return maybe(it.IsFound() && it.property_kind() == LookupIterator::ACCESSOR);
Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index 5db5e4d4f7170a03ca9e9dee39fab075ea0b2a44..09a01f43a10429a657b31c2c9818040181e844c0 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -5046,7 +5046,7 @@ RUNTIME_FUNCTION(Runtime_DefineDataPropertyUnchecked) {
     return isolate->heap()->undefined_value();
   }

-  LookupIterator it(js_object, name, LookupIterator::CHECK_PROPERTY);
+  LookupIterator it(js_object, name, LookupIterator::CHECK_OWN_PROPERTY);

   // Take special care when attributes are different and there is already
   // a property.
@@ -5294,7 +5294,7 @@ RUNTIME_FUNCTION(Runtime_AddNamedProperty) {
 #ifdef DEBUG
   uint32_t index = 0;
   DCHECK(!key->ToArrayIndex(&index));
-  LookupIterator it(object, key, LookupIterator::CHECK_PROPERTY);
+  LookupIterator it(object, key, LookupIterator::CHECK_OWN_PROPERTY);
   Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
   DCHECK(maybe.has_value);
   RUNTIME_ASSERT(!it.IsFound());
@@ -5326,7 +5326,7 @@ RUNTIME_FUNCTION(Runtime_AddPropertyForTemplate) {
   bool duplicate;
   if (key->IsName()) {
     LookupIterator it(object, Handle<Name>::cast(key),
-                      LookupIterator::CHECK_PROPERTY);
+                      LookupIterator::CHECK_OWN_PROPERTY);
Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
     DCHECK(maybe.has_value);
     duplicate = it.IsFound();


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to