Index: src/debug/debug.cc |
diff --git a/src/debug/debug.cc b/src/debug/debug.cc |
index 3830d8eed863c3092529de7f64016e80296a98ca..983af779314a591edbcc6f28a100417161fabba5 100644 |
--- a/src/debug/debug.cc |
+++ b/src/debug/debug.cc |
@@ -731,6 +731,13 @@ void Debug::ClearAllBreakPoints() { |
void Debug::FloodWithOneShot(Handle<JSFunction> function, |
BreakLocatorType type) { |
+ if (!function->shared()->IsSubjectToDebugging()) { |
+ // Builtin functions are not subject to stepping, but need to be |
+ // deoptimized, because optimized code does not check for debug |
+ // step in at call sites. |
+ Deoptimizer::DeoptimizeFunction(*function); |
+ return; |
+ } |
// Make sure the function is compiled and has set up the debug info. |
Handle<SharedFunctionInfo> shared(function->shared()); |
if (!EnsureDebugInfo(shared, function)) { |