Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index eccf6ea4c8c762a98b23b8690e7a52c9b072b75c..a1f465f400c552f1d9e1209c28f8739b8eb2bb8e 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -8097,13 +8097,15 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_OptimizeFunctionOnNextCall) { |
} |
-RUNTIME_FUNCTION(MaybeObject*, Runtime_WaitUntilOptimized) { |
+RUNTIME_FUNCTION(MaybeObject*, Runtime_CompleteOptimization) { |
HandleScope scope(isolate); |
ASSERT(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); |
- if (FLAG_parallel_recompilation) { |
- if (V8::UseCrankshaft() && function->IsOptimizable()) { |
- while (!function->IsOptimized()) OS::Sleep(50); |
+ if (FLAG_parallel_recompilation && V8::UseCrankshaft()) { |
+ // While function is in optimization pipeline, it is marked with builtins. |
+ while (function->code()->kind() == Code::BUILTIN) { |
+ isolate->optimizing_compiler_thread()->InstallOptimizedFunctions(); |
+ OS::Sleep(50); |
} |
} |
return isolate->heap()->undefined_value(); |