| Index: src/objects-inl.h | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h | 
| index 31ebbb18c8a42bf0399208099e20ac7f910c2d8c..9c616247afc462924d2c2103e9d15280ef15dd8f 100644 | 
| --- a/src/objects-inl.h | 
| +++ b/src/objects-inl.h | 
| @@ -3673,10 +3673,9 @@ void* FixedTypedArrayBase::DataPtr() { | 
| } | 
|  | 
|  | 
| -int FixedTypedArrayBase::DataSize() { | 
| -  InstanceType instance_type = map()->instance_type(); | 
| +int FixedTypedArrayBase::DataSize(InstanceType type) { | 
| int element_size; | 
| -  switch (instance_type) { | 
| +  switch (type) { | 
| #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)                       \ | 
| case FIXED_##TYPE##_ARRAY_TYPE:                                           \ | 
| element_size = size;                                                    \ | 
| @@ -3692,11 +3691,21 @@ int FixedTypedArrayBase::DataSize() { | 
| } | 
|  | 
|  | 
| +int FixedTypedArrayBase::DataSize() { | 
| +  return DataSize(map()->instance_type()); | 
| +} | 
| + | 
| + | 
| int FixedTypedArrayBase::size() { | 
| return OBJECT_POINTER_ALIGN(kDataOffset + DataSize()); | 
| } | 
|  | 
|  | 
| +int FixedTypedArrayBase::TypedArraySize(InstanceType type) { | 
| +  return OBJECT_POINTER_ALIGN(kDataOffset + DataSize(type)); | 
| +} | 
| + | 
| + | 
| uint8_t Uint8ArrayTraits::defaultValue() { return 0; } | 
|  | 
|  | 
| @@ -3918,7 +3927,7 @@ int HeapObject::SizeFromMap(Map* map) { | 
| int instance_size = map->instance_size(); | 
| if (instance_size != kVariableSizeSentinel) return instance_size; | 
| // Only inline the most frequent cases. | 
| -  int instance_type = static_cast<int>(map->instance_type()); | 
| +  InstanceType instance_type = map->instance_type(); | 
| if (instance_type == FIXED_ARRAY_TYPE) { | 
| return FixedArray::BodyDescriptor::SizeOf(map, this); | 
| } | 
| @@ -3951,7 +3960,8 @@ int HeapObject::SizeFromMap(Map* map) { | 
| } | 
| if (instance_type >= FIRST_FIXED_TYPED_ARRAY_TYPE && | 
| instance_type <= LAST_FIXED_TYPED_ARRAY_TYPE) { | 
| -    return reinterpret_cast<FixedTypedArrayBase*>(this)->size(); | 
| +    return reinterpret_cast<FixedTypedArrayBase*>( | 
| +        this)->TypedArraySize(instance_type); | 
| } | 
| ASSERT(instance_type == CODE_TYPE); | 
| return reinterpret_cast<Code*>(this)->CodeSize(); | 
|  |