| 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.
|
|
|