Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 2ce145104693c26f371290267a7aa4410e3d7c9f..bafeee8f58703cf83f57fd62686eefaee6ee4a67 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -7285,6 +7285,18 @@ void JSFunction::MarkForLazyRecompilation() { |
ReplaceCode(builtins->builtin(Builtins::kLazyRecompile)); |
} |
+void JSFunction::MarkForParallelRecompilation() { |
+ ASSERT(is_compiled() && !IsOptimized()); |
+ ASSERT(shared()->allows_lazy_compilation() || code()->optimizable()); |
+ Builtins* builtins = GetIsolate()->builtins(); |
+ ReplaceCode(builtins->builtin(Builtins::kParallelRecompile)); |
+ |
+ // Unlike MarkForLazyRecompilation, after queuing a function for |
+ // recompilation on the compiler thread, we actually tail-call into |
+ // the full code. We reset the profiler ticks here so that the |
+ // function doesn't bother the runtime profiler too much. |
+ shared()->code()->set_profiler_ticks(0); |
+} |
static bool CompileLazyHelper(CompilationInfo* info, |
ClearExceptionFlag flag) { |