Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index a7fd3b79d7bb799ea7414332645ac64dc178fcf0..a9461ee2e109044df1a0d65e41ddb46dea00391c 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) \ |
@@ -839,6 +844,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); |
@@ -1099,6 +1107,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); |