| Index: src/runtime.cc | 
| diff --git a/src/runtime.cc b/src/runtime.cc | 
| index 54bb61a0bb93044481c2378ade39e34135bdce2a..31e44a4f8f2e000e75f116c878405c120110b8db 100644 | 
| --- a/src/runtime.cc | 
| +++ b/src/runtime.cc | 
| @@ -54,7 +54,7 @@ | 
| #include "runtime-profiler.h" | 
| #include "runtime.h" | 
| #include "scopeinfo.h" | 
| -#include "smart-array-pointer.h" | 
| +#include "smart-pointers.h" | 
| #include "string-search.h" | 
| #include "stub-cache.h" | 
| #include "v8threads.h" | 
| @@ -8292,6 +8292,14 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_LazyRecompile) { | 
| } | 
|  | 
|  | 
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_ParallelRecompile) { | 
| +  HandleScope handle_scope(isolate); | 
| +  ASSERT(FLAG_parallel_recompilation); | 
| +  Compiler::RecompileParallel(args.at<JSFunction>(0)); | 
| +  return *isolate->factory()->undefined_value(); | 
| +} | 
| + | 
| + | 
| class ActivationsFinder : public ThreadVisitor { | 
| public: | 
| explicit ActivationsFinder(JSFunction* function) | 
| @@ -8486,6 +8494,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetOptimizationStatus) { | 
| return Smi::FromInt(4);  // 4 == "never". | 
| } | 
| CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); | 
| +  if (FLAG_parallel_recompilation) { | 
| +    if (function->IsMarkedForLazyRecompilation()) { | 
| +      return Smi::FromInt(5); | 
| +    } | 
| +  } | 
| if (FLAG_always_opt) { | 
| // We may have always opt, but that is more best-effort than a real | 
| // promise, so we still say "no" if it is not optimized. | 
|  |