| Index: src/objects.cc
|
| ===================================================================
|
| --- src/objects.cc (revision 546)
|
| +++ src/objects.cc (working copy)
|
| @@ -3920,7 +3920,10 @@
|
|
|
|
|
| static inline uint32_t HashField(uint32_t hash, bool is_array_index) {
|
| - return (hash << String::kLongLengthShift) | (is_array_index ? 3 : 1);
|
| + uint32_t result =
|
| + (hash << String::kLongLengthShift) | String::kHashComputedMask;
|
| + if (is_array_index) result |= String::kIsArrayIndexMask;
|
| + return result;
|
| }
|
|
|
|
|
| @@ -6063,13 +6066,13 @@
|
| // Check if this index is high enough that we should require slow
|
| // elements.
|
| if (key > kRequiresSlowElementsLimit) {
|
| - set(kPrefixStartIndex, Smi::FromInt(kRequiresSlowElementsMask));
|
| + set(kMaxNumberKeyIndex, Smi::FromInt(kRequiresSlowElementsMask));
|
| return;
|
| }
|
| // Update max key value.
|
| - Object* max_index_object = get(kPrefixStartIndex);
|
| + Object* max_index_object = get(kMaxNumberKeyIndex);
|
| if (!max_index_object->IsSmi() || max_number_key() < key) {
|
| - set(kPrefixStartIndex, Smi::FromInt(key << kRequiresSlowElementsTagSize));
|
| + set(kMaxNumberKeyIndex, Smi::FromInt(key << kRequiresSlowElementsTagSize));
|
| }
|
| }
|
|
|
|
|