Index: src/heap/scavenger.cc |
diff --git a/src/heap/scavenger.cc b/src/heap/scavenger.cc |
index 4fa30e2650890945097555663006d63f86040512..2b0234dd0b9891cbf698d344be1d185231e4556a 100644 |
--- a/src/heap/scavenger.cc |
+++ b/src/heap/scavenger.cc |
@@ -295,6 +295,14 @@ |
PromotionMode promotion_mode) { |
ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object, |
promotion_mode); |
+ |
+ Heap* heap = map->GetHeap(); |
+ MapWord map_word = object->map_word(); |
+ DCHECK(map_word.IsForwardingAddress()); |
+ HeapObject* target = map_word.ToForwardingAddress(); |
+ if (!heap->InNewSpace(target)) { |
+ heap->array_buffer_tracker()->Promote(JSArrayBuffer::cast(target)); |
+ } |
} |
static inline void EvacuateByteArray(Map* map, HeapObject** slot, |