| Index: src/heap.h
 | 
| diff --git a/src/heap.h b/src/heap.h
 | 
| index d254b607b6e756d29245c5d312def4d3f00afaaf..77d6d59dcac98c5db5f9fd87569f07510fbdd86f 100644
 | 
| --- a/src/heap.h
 | 
| +++ b/src/heap.h
 | 
| @@ -232,6 +232,7 @@ namespace internal {
 | 
|    V(last_index_string, "lastIndex")                                      \
 | 
|    V(object_string, "object")                                             \
 | 
|    V(payload_string, "payload")                                           \
 | 
| +  V(literals_string, "literals")                                         \
 | 
|    V(prototype_string, "prototype")                                       \
 | 
|    V(string_string, "string")                                             \
 | 
|    V(String_string, "String")                                             \
 | 
| @@ -657,7 +658,7 @@ class Heap {
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateJSObjectWithAllocationSite(
 | 
|        JSFunction* constructor,
 | 
| -      Handle<Object> allocation_site_info_payload);
 | 
| +      Handle<AllocationSite> allocation_site);
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateJSGeneratorObject(
 | 
|        JSFunction* function);
 | 
| @@ -676,7 +677,7 @@ class Heap {
 | 
|  
 | 
|    inline MUST_USE_RESULT MaybeObject* AllocateEmptyJSArrayWithAllocationSite(
 | 
|        ElementsKind elements_kind,
 | 
| -      Handle<Object> allocation_site_payload);
 | 
| +      Handle<AllocationSite> allocation_site);
 | 
|  
 | 
|    // Allocate a JSArray with a specified length but elements that are left
 | 
|    // uninitialized.
 | 
| @@ -691,7 +692,7 @@ class Heap {
 | 
|        ElementsKind elements_kind,
 | 
|        int length,
 | 
|        int capacity,
 | 
| -      Handle<Object> allocation_site_payload,
 | 
| +      Handle<AllocationSite> allocation_site,
 | 
|        ArrayStorageAllocationMode mode = DONT_INITIALIZE_ARRAY_ELEMENTS);
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateJSArrayStorage(
 | 
| @@ -718,7 +719,8 @@ class Heap {
 | 
|    // Returns failure if allocation failed.
 | 
|    MUST_USE_RESULT MaybeObject* CopyJSObject(JSObject* source);
 | 
|  
 | 
| -  MUST_USE_RESULT MaybeObject* CopyJSObjectWithAllocationSite(JSObject* source);
 | 
| +  MUST_USE_RESULT MaybeObject* CopyJSObjectWithAllocationSite(
 | 
| +      JSObject* source, AllocationSite* site);
 | 
|  
 | 
|    // Allocates the function prototype.
 | 
|    // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
 | 
| @@ -768,7 +770,7 @@ class Heap {
 | 
|        Map* map, PretenureFlag pretenure = NOT_TENURED);
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMapWithAllocationSite(
 | 
| -      Map* map, Handle<Object> allocation_site_info_payload);
 | 
| +      Map* map, Handle<AllocationSite> allocation_site);
 | 
|  
 | 
|    // Allocates a heap object based on the map.
 | 
|    // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
 | 
| @@ -777,7 +779,7 @@ class Heap {
 | 
|    MUST_USE_RESULT MaybeObject* Allocate(Map* map, AllocationSpace space);
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateWithAllocationSite(Map* map,
 | 
| -      AllocationSpace space, Handle<Object> allocation_site_info_payload);
 | 
| +      AllocationSpace space, Handle<AllocationSite> allocation_site);
 | 
|  
 | 
|    // Allocates a JS Map in the heap.
 | 
|    // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
 | 
| @@ -955,6 +957,9 @@ class Heap {
 | 
|    MUST_USE_RESULT MaybeObject* AllocateBox(Object* value,
 | 
|                                             PretenureFlag pretenure);
 | 
|  
 | 
| +  // Allocate a tenured AllocationSite. It's payload is null
 | 
| +  MUST_USE_RESULT MaybeObject* AllocateAllocationSite();
 | 
| +
 | 
|    // Allocates a fixed array initialized with undefined values
 | 
|    // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
 | 
|    // failed.
 | 
| @@ -2156,7 +2161,7 @@ class Heap {
 | 
|  
 | 
|    MUST_USE_RESULT MaybeObject* AllocateJSArrayWithAllocationSite(
 | 
|        ElementsKind elements_kind,
 | 
| -      Handle<Object> allocation_site_info_payload);
 | 
| +      Handle<AllocationSite> allocation_site);
 | 
|  
 | 
|    // Allocate empty fixed array.
 | 
|    MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray();
 | 
| 
 |