Index: src/property.h |
diff --git a/src/property.h b/src/property.h |
index 53c344191ae66ce5d38615ab6c75660c93d21450..720028008dfb4bfc6681737bc1c1c16cc2cc454a 100644 |
--- a/src/property.h |
+++ b/src/property.h |
@@ -337,10 +337,8 @@ class LookupResult BASE_EMBEDDED { |
} |
int GetLocalFieldIndexFromMap(Map* map) { |
- ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
ASSERT(IsField()); |
- return Descriptor::IndexFromValue( |
- map->instance_descriptors()->GetValue(number_)) - |
+ return Descriptor::IndexFromValue(GetValueFromMap(map)) - |
map->inobject_properties(); |
} |
@@ -355,9 +353,8 @@ class LookupResult BASE_EMBEDDED { |
} |
JSFunction* GetConstantFunctionFromMap(Map* map) { |
- ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
ASSERT(type() == CONSTANT_FUNCTION); |
- return JSFunction::cast(map->instance_descriptors()->GetValue(number_)); |
+ return JSFunction::cast(GetValueFromMap(map)); |
} |
Object* GetCallbackObject() { |
@@ -377,14 +374,18 @@ class LookupResult BASE_EMBEDDED { |
Object* GetValue() { |
if (lookup_type_ == DESCRIPTOR_TYPE) { |
- DescriptorArray* descriptors = holder()->map()->instance_descriptors(); |
- return descriptors->GetValue(number_); |
+ return GetValueFromMap(holder()->map()); |
} |
// In the dictionary case, the data is held in the value field. |
ASSERT(lookup_type_ == DICTIONARY_TYPE); |
return holder()->GetNormalizedProperty(this); |
} |
+ Object* GetValueFromMap(Map* map) const { |
+ ASSERT(lookup_type_ == DESCRIPTOR_TYPE); |
+ return map->instance_descriptors()->GetValue(number_); |
+ } |
+ |
void Iterate(ObjectVisitor* visitor); |
private: |