 Chromium Code Reviews
 Chromium Code Reviews Issue 11416238:
  Move CopyElements to the accessor of the target.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 11416238:
  Move CopyElements to the accessor of the target.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| Index: src/objects-inl.h | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h | 
| index f926cd471a29107cb79d3e1a9b8f3a683a8e1a48..a5349af90483c2564c4a4f725fe3575db776f5a8 100644 | 
| --- a/src/objects-inl.h | 
| +++ b/src/objects-inl.h | 
| @@ -1746,6 +1746,40 @@ FixedArrayBase* FixedArrayBase::cast(Object* object) { | 
| } | 
| +ElementsKind FixedArrayBase::GetElementsKind() { | 
| 
Michael Starzinger
2012/11/29 09:39:32
I don't like moving this outside of elements acces
 
Toon Verwaest
2012/11/29 14:04:40
Done.
 | 
| + switch (map()->instance_type()) { | 
| + case FIXED_ARRAY_TYPE: | 
| + if (IsDictionary()) { | 
| + return DICTIONARY_ELEMENTS; | 
| + } else { | 
| + return FAST_HOLEY_ELEMENTS; | 
| + } | 
| + case FIXED_DOUBLE_ARRAY_TYPE: | 
| + return FAST_HOLEY_DOUBLE_ELEMENTS; | 
| + case EXTERNAL_BYTE_ARRAY_TYPE: | 
| + return EXTERNAL_BYTE_ELEMENTS; | 
| + case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE: | 
| + return EXTERNAL_UNSIGNED_BYTE_ELEMENTS; | 
| + case EXTERNAL_SHORT_ARRAY_TYPE: | 
| + return EXTERNAL_SHORT_ELEMENTS; | 
| + case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE: | 
| + return EXTERNAL_UNSIGNED_SHORT_ELEMENTS; | 
| + case EXTERNAL_INT_ARRAY_TYPE: | 
| + return EXTERNAL_INT_ELEMENTS; | 
| + case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE: | 
| + return EXTERNAL_UNSIGNED_INT_ELEMENTS; | 
| + case EXTERNAL_FLOAT_ARRAY_TYPE: | 
| + return EXTERNAL_FLOAT_ELEMENTS; | 
| + case EXTERNAL_DOUBLE_ARRAY_TYPE: | 
| + return EXTERNAL_DOUBLE_ELEMENTS; | 
| + case EXTERNAL_PIXEL_ARRAY_TYPE: | 
| + return EXTERNAL_PIXEL_ELEMENTS; | 
| + default: | 
| + UNREACHABLE(); | 
| + } | 
| + return FAST_HOLEY_ELEMENTS; | 
| +} | 
| + | 
| Object* FixedArray::get(int index) { | 
| ASSERT(index >= 0 && index < this->length()); | 
| return READ_FIELD(this, kHeaderSize + index * kPointerSize); |