Chromium Code Reviews| Index: src/property.h |
| diff --git a/src/property.h b/src/property.h |
| index aa851f1c88a468a68f3540f2ceee56a085dc2ff8..5abc69eebbf180f68d7397ece997bbce6d015f49 100644 |
| --- a/src/property.h |
| +++ b/src/property.h |
| @@ -189,7 +189,7 @@ class LookupResult BASE_EMBEDDED { |
| lookup_type_(NOT_FOUND), |
| holder_(NULL), |
| cacheable_(true), |
| - details_(NONE, NORMAL) { |
| + details_(NONE, NONEXISTENT) { |
| isolate->SetTopLookupResult(this); |
| } |
| @@ -237,6 +237,7 @@ class LookupResult BASE_EMBEDDED { |
| void NotFound() { |
| lookup_type_ = NOT_FOUND; |
| + details_ = PropertyDetails(NONE, NONEXISTENT); |
| holder_ = NULL; |
| } |
| @@ -250,6 +251,7 @@ class LookupResult BASE_EMBEDDED { |
| return JSProxy::cast(holder_); |
| } |
| + |
| PropertyType type() { |
| ASSERT(IsFound()); |
| return details_.type(); |
| @@ -264,12 +266,18 @@ class LookupResult BASE_EMBEDDED { |
| return details_; |
| } |
| + bool IsFastPropertyType() { return type() != NORMAL; } |
|
danno
2012/06/21 14:34:30
Add asserts for (IsFound());
|
| bool IsReadOnly() { return details_.IsReadOnly(); } |
| + bool IsCallbacks() { return details_.type() == CALLBACKS; } |
|
danno
2012/06/21 14:34:30
Add asserts for (IsFound());
|
| bool IsDontDelete() { return details_.IsDontDelete(); } |
| bool IsDontEnum() { return details_.IsDontEnum(); } |
| bool IsDeleted() { return details_.IsDeleted(); } |
| bool IsFound() { return lookup_type_ != NOT_FOUND; } |
| bool IsHandler() { return lookup_type_ == HANDLER_TYPE; } |
| + bool IsInterceptor() { return lookup_type_ == INTERCEPTOR_TYPE; } |
| + bool IsField() { return details_.type() == FIELD; } |
|
danno
2012/06/21 14:34:30
Add asserts for (IsFound());
|
| + bool IsNormal() { return details_.type() == NORMAL; } |
|
danno
2012/06/21 14:34:30
Add asserts for (IsFound());
|
| + bool IsConstantFunction() { return details_.type() == CONSTANT_FUNCTION; } |
|
danno
2012/06/21 14:34:30
Add asserts for (IsFound());
|
| // Is the result is a property excluding transitions and the null descriptor? |
| bool IsProperty() { |
| @@ -298,7 +306,6 @@ class LookupResult BASE_EMBEDDED { |
| } |
| } |
| - |
| Map* GetTransitionMap() { |
| ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
| ASSERT(type() == MAP_TRANSITION || |
| @@ -314,13 +321,13 @@ class LookupResult BASE_EMBEDDED { |
| int GetFieldIndex() { |
| ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
| - ASSERT(type() == FIELD); |
| + ASSERT(IsField()); |
| return Descriptor::IndexFromValue(GetValue()); |
| } |
| int GetLocalFieldIndexFromMap(Map* map) { |
| ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
| - ASSERT(type() == FIELD); |
| + ASSERT(IsField()); |
| return Descriptor::IndexFromValue( |
| map->instance_descriptors()->GetValue(number_)) - |
| map->inobject_properties(); |