| Index: src/property-details.h | 
| diff --git a/src/property-details.h b/src/property-details.h | 
| index 92e4f81c01cb1e6b5f28eee3e5ce74aadd6d18a3..ffed72d7436b5a8269a6099c5bc9667b7adc0e6d 100644 | 
| --- a/src/property-details.h | 
| +++ b/src/property-details.h | 
| @@ -194,6 +194,15 @@ class Representation { | 
| }; | 
|  | 
|  | 
| +static const int kDescriptorIndexBitCount = 10; | 
| +// The maximum number of descriptors we want in a descriptor array (should | 
| +// fit in a page). | 
| +static const int kMaxNumberOfDescriptors = | 
| +    (1 << kDescriptorIndexBitCount) - 2; | 
| +static const int kInvalidEnumCacheSentinel = | 
| +    (1 << kDescriptorIndexBitCount) - 1; | 
| + | 
| + | 
| // PropertyDetails captures type and attributes for a property. | 
| // They are used both in property dictionaries and instance descriptors. | 
| class PropertyDetails BASE_EMBEDDED { | 
| @@ -284,9 +293,14 @@ class PropertyDetails BASE_EMBEDDED { | 
| class DictionaryStorageField:   public BitField<uint32_t,           7, 24> {}; | 
|  | 
| // Bit fields for fast objects. | 
| -  class DescriptorPointer:        public BitField<uint32_t,           6, 11> {}; | 
| -  class RepresentationField:      public BitField<uint32_t,          17,  4> {}; | 
| -  class FieldIndexField:          public BitField<uint32_t,          21, 10> {}; | 
| +  class RepresentationField:      public BitField<uint32_t,           6,  4> {}; | 
| +  class DescriptorPointer:        public BitField<uint32_t, 10, | 
| +      kDescriptorIndexBitCount> {}; | 
| +  class FieldIndexField:          public BitField<uint32_t, | 
| +      10 + kDescriptorIndexBitCount, | 
| +      kDescriptorIndexBitCount> {}; | 
| +  // All bits for fast objects must fix in a smi. | 
| +  STATIC_ASSERT(10 + kDescriptorIndexBitCount + kDescriptorIndexBitCount <= 31); | 
|  | 
| static const int kInitialIndex = 1; | 
|  | 
|  |