Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 4e633c91cfa867cffada2363a956b1c5fe780c81..bb589086609aa6f67a5d1eb4f22e933c481a363e 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -2050,12 +2050,11 @@ void Debug::EnsureFunctionHasDebugBreakSlots(Handle<JSFunction> function) { |
ForceDebuggerActive force_debugger_active(isolate_); |
MaybeHandle<Code> code = Compiler::GetCodeForDebugging(function); |
// Recompilation can fail. In that case leave the code as it was. |
- if (!code.is_null()) |
- function->ReplaceCode(*code.ToHandleChecked()); |
+ if (!code.is_null()) function->ReplaceCode(*code.ToHandleChecked()); |
+ } else { |
+ // Simply use shared code if it has debug break slots. |
+ function->ReplaceCode(function->shared()->code()); |
} |
- |
- // Keep function code in sync with shared function info. |
- function->ReplaceCode(function->shared()->code()); |
} |
@@ -2152,8 +2151,8 @@ void Debug::PrepareForBreakPoints() { |
Code::Kind kind = function->code()->kind(); |
if (kind == Code::FUNCTION && |
!function->code()->has_debug_break_slots()) { |
- function->set_code(*lazy_compile); |
- function->shared()->set_code(*lazy_compile); |
+ function->ReplaceCode(*lazy_compile); |
+ function->shared()->ReplaceCode(*lazy_compile); |
} else if (kind == Code::BUILTIN && |
(function->IsInOptimizationQueue() || |
function->IsMarkedForOptimization() || |
@@ -2162,10 +2161,10 @@ void Debug::PrepareForBreakPoints() { |
Code* shared_code = function->shared()->code(); |
if (shared_code->kind() == Code::FUNCTION && |
shared_code->has_debug_break_slots()) { |
- function->set_code(shared_code); |
+ function->ReplaceCode(shared_code); |
} else { |
- function->set_code(*lazy_compile); |
- function->shared()->set_code(*lazy_compile); |
+ function->ReplaceCode(*lazy_compile); |
+ function->shared()->ReplaceCode(*lazy_compile); |
} |
} |
} else if (obj->IsJSGeneratorObject()) { |
@@ -2206,8 +2205,8 @@ void Debug::PrepareForBreakPoints() { |
Handle<JSFunction> &function = generator_functions[i]; |
if (function->code()->kind() != Code::FUNCTION) continue; |
if (function->code()->has_debug_break_slots()) continue; |
- function->set_code(*lazy_compile); |
- function->shared()->set_code(*lazy_compile); |
+ function->ReplaceCode(*lazy_compile); |
+ function->shared()->ReplaceCode(*lazy_compile); |
} |
// Now recompile all functions with activation frames and and |