| Index: src/heap.cc
 | 
| diff --git a/src/heap.cc b/src/heap.cc
 | 
| index 38a5dee04d104768e8c6ec26cb65287497884029..7b9f0d5235d9ab58bc0e158fe31f732afb26a5b1 100644
 | 
| --- a/src/heap.cc
 | 
| +++ b/src/heap.cc
 | 
| @@ -608,6 +608,11 @@ void Heap::CollectAllAvailableGarbage(const char* gc_reason) {
 | 
|    // Note: as weak callbacks can execute arbitrary code, we cannot
 | 
|    // hope that eventually there will be no weak callbacks invocations.
 | 
|    // Therefore stop recollecting after several attempts.
 | 
| +  if (FLAG_concurrent_recompilation) {
 | 
| +    // The optimizing compiler may be unnecessarily holding on to memory.
 | 
| +    DisallowHeapAllocation no_recursive_gc;
 | 
| +    isolate()->optimizing_compiler_thread()->Flush();
 | 
| +  }
 | 
|    mark_compact_collector()->SetFlags(kMakeHeapIterableMask |
 | 
|                                       kReduceMemoryFootprintMask);
 | 
|    isolate_->compilation_cache()->Clear();
 | 
| 
 |