Index: src/ic.cc |
=================================================================== |
--- src/ic.cc (revision 3900) |
+++ src/ic.cc (working copy) |
@@ -330,10 +330,11 @@ |
while (true) { |
object->Lookup(name, lookup); |
// Besides normal conditions (property not found or it's not |
- // an interceptor), bail out of lookup is not cacheable: we won't |
+ // an interceptor), bail out if lookup is not cacheable: we won't |
// be able to IC it anyway and regular lookup should work fine. |
- if (lookup->IsNotFound() || lookup->type() != INTERCEPTOR || |
- !lookup->IsCacheable()) { |
+ if (!lookup->IsFound() |
+ || (lookup->type() != INTERCEPTOR) |
+ || !lookup->IsCacheable()) { |
return; |
} |
@@ -343,7 +344,7 @@ |
} |
holder->LocalLookupRealNamedProperty(name, lookup); |
- if (lookup->IsValid()) { |
+ if (lookup->IsProperty()) { |
ASSERT(lookup->type() != INTERCEPTOR); |
return; |
} |
@@ -422,7 +423,7 @@ |
LookupResult lookup; |
LookupForRead(*object, *name, &lookup); |
- if (!lookup.IsValid()) { |
+ if (!lookup.IsProperty()) { |
// If the object does not have the requested property, check which |
// exception we need to throw. |
if (IsContextual(object)) { |
@@ -493,7 +494,7 @@ |
Handle<String> name) { |
ASSERT(lookup->IsLoaded()); |
// Bail out if we didn't find a result. |
- if (!lookup->IsValid() || !lookup->IsCacheable()) return; |
+ if (!lookup->IsProperty() || !lookup->IsCacheable()) return; |
// Compute the number of arguments. |
int argc = target()->arguments_count(); |
@@ -642,8 +643,8 @@ |
LookupResult lookup; |
LookupForRead(*object, *name, &lookup); |
- // If lookup is invalid, check if we need to throw an exception. |
- if (!lookup.IsValid()) { |
+ // If we did not find a property, check if we need to throw an exception. |
+ if (!lookup.IsProperty()) { |
if (FLAG_strict || IsContextual(object)) { |
return ReferenceError("not_defined", name); |
} |
@@ -653,7 +654,7 @@ |
bool can_be_inlined = |
FLAG_use_ic && |
state == PREMONOMORPHIC && |
- lookup.IsValid() && |
+ lookup.IsProperty() && |
lookup.IsLoaded() && |
lookup.IsCacheable() && |
lookup.holder() == *object && |
@@ -681,7 +682,7 @@ |
} |
PropertyAttributes attr; |
- if (lookup.IsValid() && lookup.type() == INTERCEPTOR) { |
+ if (lookup.IsProperty() && lookup.type() == INTERCEPTOR) { |
// Get the property. |
Object* result = object->GetProperty(*object, &lookup, *name, &attr); |
if (result->IsFailure()) return result; |
@@ -704,7 +705,7 @@ |
Handle<String> name) { |
ASSERT(lookup->IsLoaded()); |
// Bail out if we didn't find a result. |
- if (!lookup->IsValid() || !lookup->IsCacheable()) return; |
+ if (!lookup->IsProperty() || !lookup->IsCacheable()) return; |
// Loading properties from values is not common, so don't try to |
// deal with non-JS objects here. |
@@ -857,8 +858,8 @@ |
LookupResult lookup; |
LookupForRead(*object, *name, &lookup); |
- // If lookup is invalid, check if we need to throw an exception. |
- if (!lookup.IsValid()) { |
+ // If we did not find a property, check if we need to throw an exception. |
+ if (!lookup.IsProperty()) { |
if (FLAG_strict || IsContextual(object)) { |
return ReferenceError("not_defined", name); |
} |
@@ -869,7 +870,7 @@ |
} |
PropertyAttributes attr; |
- if (lookup.IsValid() && lookup.type() == INTERCEPTOR) { |
+ if (lookup.IsProperty() && lookup.type() == INTERCEPTOR) { |
// Get the property. |
Object* result = object->GetProperty(*object, &lookup, *name, &attr); |
if (result->IsFailure()) return result; |
@@ -921,7 +922,7 @@ |
Handle<Object> object, Handle<String> name) { |
ASSERT(lookup->IsLoaded()); |
// Bail out if we didn't find a result. |
- if (!lookup->IsValid() || !lookup->IsCacheable()) return; |
+ if (!lookup->IsProperty() || !lookup->IsCacheable()) return; |
if (!object->IsJSObject()) return; |
Handle<JSObject> receiver = Handle<JSObject>::cast(object); |
@@ -994,7 +995,7 @@ |
static bool StoreICableLookup(LookupResult* lookup) { |
// Bail out if we didn't find a result. |
- if (!lookup->IsValid() || !lookup->IsCacheable()) return false; |
+ if (!lookup->IsPropertyOrTransition() || !lookup->IsCacheable()) return false; |
// If the property is read-only, we leave the IC in its current |
// state. |
@@ -1214,7 +1215,7 @@ |
if (receiver->IsJSGlobalProxy()) return; |
// Bail out if we didn't find a result. |
- if (!lookup->IsValid() || !lookup->IsCacheable()) return; |
+ if (!lookup->IsPropertyOrTransition() || !lookup->IsCacheable()) return; |
// If the property is read-only, we leave the IC in its current |
// state. |