| Index: src/heap.cc
 | 
| ===================================================================
 | 
| --- src/heap.cc	(revision 2759)
 | 
| +++ src/heap.cc	(working copy)
 | 
| @@ -465,9 +465,9 @@
 | 
|      old_gen_allocation_limit_ =
 | 
|          old_gen_size + Max(kMinimumAllocationLimit, old_gen_size / 2);
 | 
|      old_gen_exhausted_ = false;
 | 
| -  } else {
 | 
| -    Scavenge();
 | 
|    }
 | 
| +  Scavenge();
 | 
| +
 | 
|    Counters::objs_since_last_young.Set(0);
 | 
|  
 | 
|    PostGarbageCollectionProcessing();
 | 
| @@ -521,12 +521,6 @@
 | 
|  
 | 
|    Counters::objs_since_last_full.Set(0);
 | 
|    context_disposed_pending_ = false;
 | 
| -
 | 
| -  Scavenge();
 | 
| -
 | 
| -  // Shrink new space as much as possible after compacting full
 | 
| -  // garbage collections.
 | 
| -  if (is_compacting) new_space_.Shrink();
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -2807,6 +2801,8 @@
 | 
|      CollectAllGarbage(force_compaction);
 | 
|      last_gc_count = gc_count_;
 | 
|      if (force_compaction) {
 | 
| +      // Shrink new space.
 | 
| +      new_space_.Shrink();
 | 
|        number_idle_notifications = 0;
 | 
|        finished = true;
 | 
|      }
 | 
| 
 |