| Index: src/objects.h | 
| diff --git a/src/objects.h b/src/objects.h | 
| index 0d1a69cb9882985fa282c4e2f3dc4a5fa98c9523..db5c4b7d12dcaf9e43690944fd48075ea96a300c 100644 | 
| --- a/src/objects.h | 
| +++ b/src/objects.h | 
| @@ -279,6 +279,7 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits; | 
| V(OBJECT_TEMPLATE_INFO_TYPE)                                                 \ | 
| V(SIGNATURE_INFO_TYPE)                                                       \ | 
| V(TYPE_SWITCH_INFO_TYPE)                                                     \ | 
| +  V(ALLOCATION_SITE_INFO_TYPE)                                                 \ | 
| V(SCRIPT_TYPE)                                                               \ | 
| V(CODE_CACHE_TYPE)                                                           \ | 
| V(POLYMORPHIC_CODE_CACHE_TYPE)                                               \ | 
| @@ -432,6 +433,7 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits; | 
| V(SIGNATURE_INFO, SignatureInfo, signature_info)                             \ | 
| V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info)                        \ | 
| V(SCRIPT, Script, script)                                                    \ | 
| +  V(ALLOCATION_SITE_INFO, AllocationSiteInfo, allocation_site_info)            \ | 
| V(CODE_CACHE, CodeCache, code_cache)                                         \ | 
| V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache)      \ | 
| V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info)                  \ | 
| @@ -587,6 +589,7 @@ enum InstanceType { | 
| OBJECT_TEMPLATE_INFO_TYPE, | 
| SIGNATURE_INFO_TYPE, | 
| TYPE_SWITCH_INFO_TYPE, | 
| +  ALLOCATION_SITE_INFO_TYPE, | 
| SCRIPT_TYPE, | 
| CODE_CACHE_TYPE, | 
| POLYMORPHIC_CODE_CACHE_TYPE, | 
| @@ -4156,6 +4159,11 @@ class TypeFeedbackCells: public FixedArray { | 
| // The object that indicates a megamorphic state. | 
| static inline Handle<Object> MegamorphicSentinel(Isolate* isolate); | 
|  | 
| +  // The object that indicates a monomorphic state of Array with a specific | 
| +  // ElementsKind. | 
| +  static inline Handle<Object> MonomorphicArraySentinel( | 
| +      ElementsKind elements_kind); | 
| + | 
| // A raw version of the uninitialized sentinel that's safe to read during | 
| // garbage collection (e.g., for patching the cache). | 
| static inline Object* RawUninitializedSentinel(Heap* heap); | 
| @@ -8715,6 +8723,30 @@ class TypeSwitchInfo: public Struct { | 
| }; | 
|  | 
|  | 
| +class AllocationSiteInfo: public Struct { | 
| + public: | 
| +  DECL_ACCESSORS(payload, Object) | 
| + | 
| +  static inline AllocationSiteInfo* cast(Object* obj); | 
| + | 
| +#ifdef OBJECT_PRINT | 
| +  inline void AllocationSiteInfoPrint() { | 
| +    AllocationSiteInfoPrint(stdout); | 
| +  } | 
| +  void AllocationSiteInfoPrint(FILE* out); | 
| +#endif | 
| +#ifdef DEBUG | 
| +  void AllocationSiteInfoVerify(); | 
| +#endif | 
| + | 
| +  static const int kPayloadOffset  = HeapObject::kHeaderSize; | 
| +  static const int kSize           = kPayloadOffset + kPointerSize; | 
| + | 
| + private: | 
| +  DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationSiteInfo); | 
| +}; | 
| + | 
| + | 
| #ifdef ENABLE_DEBUGGER_SUPPORT | 
| // The DebugInfo class holds additional information for a function being | 
| // debugged. | 
|  |