Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index c97c1889d1614b63298828745d6b360594bcbea5..7a3e992e476ef28d66834191a95e738788f7e0d9 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -189,6 +189,11 @@ using v8::MemoryPressureLevel; |
V(FixedArray, detached_contexts, DetachedContexts) \ |
V(ArrayList, retained_maps, RetainedMaps) \ |
V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable) \ |
+ /* weak_new_space_object_to_code_list is an array of weak cells, where */ \ |
+ /* slots with even indices refer to the weak object, and the subsequent */ \ |
+ /* slots refer to the code with the reference to the weak object. */ \ |
+ V(ArrayList, weak_new_space_object_to_code_list, \ |
+ WeakNewSpaceObjectToCodeList) \ |
V(PropertyCell, array_protector, ArrayProtector) \ |
V(Cell, is_concat_spreadable_protector, IsConcatSpreadableProtector) \ |
V(PropertyCell, empty_property_cell, EmptyPropertyCell) \ |
@@ -838,6 +843,9 @@ class Heap { |
return new_space_.IsAtMaximumCapacity() && maximum_size_scavenges_ == 0; |
} |
+ void AddWeakNewSpaceObjectToCodeDependency(Handle<HeapObject> obj, |
+ Handle<WeakCell> code); |
+ |
void AddWeakObjectToCodeDependency(Handle<HeapObject> obj, |
Handle<DependentCode> dep); |
@@ -1096,6 +1104,8 @@ class Heap { |
// Write barrier support for object[offset] = o; |
inline void RecordWrite(Object* object, int offset, Object* o); |
+ inline void RecordWriteIntoCode(Code* host, RelocInfo* rinfo, Object* target); |
+ void RecordWriteIntoCodeSlow(Code* host, RelocInfo* rinfo, Object* target); |
inline void RecordFixedArrayElements(FixedArray* array, int offset, |
int length); |