| Index: src/heap/mark-compact.cc | 
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc | 
| index 1992c23925a061d7d334d12dc69b43dbc25b162e..a9ea707a9bff90a5fe4e56c9ca3f24a889a87a45 100644 | 
| --- a/src/heap/mark-compact.cc | 
| +++ b/src/heap/mark-compact.cc | 
| @@ -2161,6 +2161,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; | 
|  |