Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index ff7a9ff12f20d6f7e37751f7d2bd91fb26939684..a530c396bedda23beec01b349f57c62f3760c944 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -145,6 +145,7 @@ Heap::Heap() |
set_native_contexts_list(NULL); |
set_array_buffers_list(Smi::FromInt(0)); |
set_allocation_sites_list(Smi::FromInt(0)); |
+ set_encountered_weak_collections(Smi::FromInt(0)); |
// Put a dummy entry in the remembered pages so we can find the list the |
// minidump even if there are no real unmapped pages. |
RememberUnmappedPage(NULL, false); |
@@ -1508,6 +1509,9 @@ void Heap::Scavenge() { |
} |
} |
+ // Copy objects reachable from the encountered weak collections list. |
+ scavenge_visitor.VisitPointer(&encountered_weak_collections_); |
+ |
// Copy objects reachable from the code flushing candidates list. |
MarkCompactCollector* collector = mark_compact_collector(); |
if (collector->is_code_flushing_enabled()) { |