Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 0516c9c2ab0f1a90acf6dbfb920ef1c21a3d0572..1d0bf183ecf0d2b028353c745ed961fab2c40a47 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -8089,13 +8089,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(); |