| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index fa366eefb6b6a2e5003aa1efe550bd74c4a7ca4f..333ab86393fca81092ff9ef4005cb94dfe96a245 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -2160,6 +2160,21 @@ void MarkCompactCollector::UncommitMarkingDeque() {
|
| }
|
|
|
|
|
| +void MarkCompactCollector::OverApproximateWeakClosure() {
|
| + GCTracer::Scope gc_scope(heap()->tracer(),
|
| + GCTracer::Scope::MC_INCREMENTAL_WEAKCLOSURE);
|
| +
|
| + RootMarkingVisitor root_visitor(heap());
|
| + isolate()->global_handles()->IterateObjectGroups(
|
| + &root_visitor, &IsUnmarkedHeapObjectWithHeap);
|
| + MarkImplicitRefGroups();
|
| +
|
| + // Remove object groups after marking phase.
|
| + heap()->isolate()->global_handles()->RemoveObjectGroups();
|
| + heap()->isolate()->global_handles()->RemoveImplicitRefGroups();
|
| +}
|
| +
|
| +
|
| void MarkCompactCollector::MarkLiveObjects() {
|
| GCTracer::Scope gc_scope(heap()->tracer(), GCTracer::Scope::MC_MARK);
|
| double start_time = 0.0;
|
|
|