From 482a0e3196fa5017bb365c227711f3461a85bb72 Mon Sep 17 00:00:00 2001 From: "svenpanne@chromium.org" Date: Fri, 6 Jul 2012 08:11:10 +0000 Subject: [PATCH] Added LookupResult::GetValueFromMap. This is needed later for crankshafted accessors and reduces copy-n-paste a bit. Review URL: https://chromiumcodereview.appspot.com/10702108 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/property.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/property.h b/src/property.h index 53c344191a..720028008d 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: