| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index ef8bb2a6c1d61d952abeffb25e642c604717330c..ae9e284015ba3ea4f9ff93851afd11861bdfb2eb 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -321,6 +321,10 @@ void BreakLocation::ClearDebugBreak() {
|
| } else {
|
| // Restore the IC call.
|
| rinfo().set_target_address(original_rinfo().target_address());
|
| + // Some ICs store data in the feedback vector. Clear this to ensure we
|
| + // won't miss future stepping requirements.
|
| + SharedFunctionInfo* shared = debug_info_->shared();
|
| + shared->feedback_vector()->ClearICSlots(shared);
|
| }
|
| DCHECK(!IsDebugBreak());
|
| }
|
| @@ -2118,6 +2122,10 @@ bool Debug::EnsureDebugInfo(Handle<SharedFunctionInfo> shared,
|
| return false;
|
| }
|
|
|
| + // Make sure IC state is clean.
|
| + shared->code()->ClearInlineCaches();
|
| + shared->feedback_vector()->ClearICSlots(*shared);
|
| +
|
| // Create the debug info object.
|
| Handle<DebugInfo> debug_info = isolate->factory()->NewDebugInfo(shared);
|
|
|
|
|