| 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:
|
|
|