| Index: src/heap/heap.h
 | 
| diff --git a/src/heap/heap.h b/src/heap/heap.h
 | 
| index 8ebf21b841c71c649726d4ef144b336a38d22ed6..b86b5c46b4efa8ba799b6d5f41f7e1d94771348b 100644
 | 
| --- a/src/heap/heap.h
 | 
| +++ b/src/heap/heap.h
 | 
| @@ -2579,26 +2579,26 @@ class HeapIterator BASE_EMBEDDED {
 | 
|   public:
 | 
|    enum HeapObjectsFiltering { kNoFiltering, kFilterUnreachable };
 | 
|  
 | 
| -  explicit HeapIterator(Heap* heap);
 | 
| -  HeapIterator(Heap* heap, HeapObjectsFiltering filtering);
 | 
| +  explicit HeapIterator(Heap* heap,
 | 
| +                        HeapObjectsFiltering filtering = kNoFiltering);
 | 
|    ~HeapIterator();
 | 
|  
 | 
|    HeapObject* next();
 | 
| -  void reset();
 | 
|  
 | 
|   private:
 | 
|    struct MakeHeapIterableHelper {
 | 
|      explicit MakeHeapIterableHelper(Heap* heap) { heap->MakeHeapIterable(); }
 | 
|    };
 | 
|  
 | 
| -  // Perform the initialization.
 | 
| -  void Init();
 | 
| -  // Perform all necessary shutdown (destruction) work.
 | 
| -  void Shutdown();
 | 
|    HeapObject* NextObject();
 | 
|  
 | 
| +  // The following two fields need to be declared in this order. Initialization
 | 
| +  // order guarantees that we first make the heap iterable (which may involve
 | 
| +  // allocations) and only then lock it down by not allowing further
 | 
| +  // allocations.
 | 
|    MakeHeapIterableHelper make_heap_iterable_helper_;
 | 
|    DisallowHeapAllocation no_heap_allocation_;
 | 
| +
 | 
|    Heap* heap_;
 | 
|    HeapObjectsFiltering filtering_;
 | 
|    HeapObjectsFilter* filter_;
 | 
| 
 |