| Index: src/runtime-profiler.cc
 | 
| diff --git a/src/runtime-profiler.cc b/src/runtime-profiler.cc
 | 
| index cdbc77a54087ebbab74ed00ce7242b90186d2be2..1856359f764143c686fd8d68a10ac83ebf03f4b9 100644
 | 
| --- a/src/runtime-profiler.cc
 | 
| +++ b/src/runtime-profiler.cc
 | 
| @@ -151,15 +151,20 @@ void RuntimeProfiler::Optimize(JSFunction* function, const char* reason) {
 | 
|      PrintF("]\n");
 | 
|    }
 | 
|  
 | 
| -  // The next call to the function will trigger optimization.
 | 
| -  function->MarkForLazyRecompilation();
 | 
| +  if (FLAG_parallel_recompilation) {
 | 
| +    function->MarkForParallelRecompilation();
 | 
| +  } else {
 | 
| +    // The next call to the function will trigger optimization.
 | 
| +    function->MarkForLazyRecompilation();
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
|  void RuntimeProfiler::AttemptOnStackReplacement(JSFunction* function) {
 | 
|    // See AlwaysFullCompiler (in compiler.cc) comment on why we need
 | 
|    // Debug::has_break_points().
 | 
| -  ASSERT(function->IsMarkedForLazyRecompilation());
 | 
| +  ASSERT(function->IsMarkedForLazyRecompilation() ||
 | 
| +         function->IsMarkedForParallelRecompilation());
 | 
|    if (!FLAG_use_osr ||
 | 
|        isolate_->DebuggerHasBreakPoints() ||
 | 
|        function->IsBuiltin()) {
 | 
| @@ -278,7 +283,8 @@ void RuntimeProfiler::OptimizeNow() {
 | 
|  
 | 
|      if (shared_code->kind() != Code::FUNCTION) continue;
 | 
|  
 | 
| -    if (function->IsMarkedForLazyRecompilation()) {
 | 
| +    if (function->IsMarkedForLazyRecompilation() ||
 | 
| +        function->IsMarkedForParallelRecompilation()) {
 | 
|        int nesting = shared_code->allow_osr_at_loop_nesting_level();
 | 
|        if (nesting == 0) AttemptOnStackReplacement(function);
 | 
|        int new_nesting = Min(nesting + 1, Code::kMaxLoopNestingMarker);
 | 
| 
 |