Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 01c4dba3cfeba41cc3a629e1e7c614c6355183ed..f6c4d6c8ed7ef28a4d868f740faa331a9bbbe6a3 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -85,12 +85,6 @@ static void PrintLn(v8::Local<v8::Value> value) { |
} |
-static Handle<Code> ComputeCallDebugBreak(int argc, Code::Kind kind) { |
- Isolate* isolate = Isolate::Current(); |
- return isolate->stub_cache()->ComputeCallDebugBreak(argc, kind); |
-} |
- |
- |
static Handle<Code> ComputeCallDebugPrepareStepIn(int argc, Code::Kind kind) { |
Isolate* isolate = Isolate::Current(); |
return isolate->stub_cache()->ComputeCallDebugPrepareStepIn(argc, kind); |
@@ -1538,40 +1532,47 @@ bool Debug::IsBreakStub(Code* code) { |
// Find the builtin to use for invoking the debug break |
Handle<Code> Debug::FindDebugBreak(Handle<Code> code, RelocInfo::Mode mode) { |
+ Isolate* isolate = Isolate::Current(); |
+ |
// Find the builtin debug break function matching the calling convention |
// used by the call site. |
if (code->is_inline_cache_stub()) { |
switch (code->kind()) { |
case Code::CALL_IC: |
case Code::KEYED_CALL_IC: |
- return ComputeCallDebugBreak(code->arguments_count(), code->kind()); |
+ return isolate->stub_cache()->ComputeCallDebugBreak( |
+ code->arguments_count(), code->kind()); |
case Code::LOAD_IC: |
- return Isolate::Current()->builtins()->LoadIC_DebugBreak(); |
+ return isolate->builtins()->LoadIC_DebugBreak(); |
case Code::STORE_IC: |
- return Isolate::Current()->builtins()->StoreIC_DebugBreak(); |
+ return isolate->builtins()->StoreIC_DebugBreak(); |
case Code::KEYED_LOAD_IC: |
- return Isolate::Current()->builtins()->KeyedLoadIC_DebugBreak(); |
+ return isolate->builtins()->KeyedLoadIC_DebugBreak(); |
case Code::KEYED_STORE_IC: |
- return Isolate::Current()->builtins()->KeyedStoreIC_DebugBreak(); |
+ return isolate->builtins()->KeyedStoreIC_DebugBreak(); |
default: |
UNREACHABLE(); |
} |
} |
if (RelocInfo::IsConstructCall(mode)) { |
- Handle<Code> result = |
- Isolate::Current()->builtins()->ConstructCall_DebugBreak(); |
- return result; |
+ if (code->has_function_cache()) { |
+ return isolate->builtins()->CallConstructStub_Recording_DebugBreak(); |
+ } else { |
+ return isolate->builtins()->CallConstructStub_DebugBreak(); |
+ } |
} |
if (code->kind() == Code::STUB) { |
ASSERT(code->major_key() == CodeStub::CallFunction); |
- Handle<Code> result = |
- Isolate::Current()->builtins()->CallFunctionStub_DebugBreak(); |
- return result; |
+ if (code->has_function_cache()) { |
+ return isolate->builtins()->CallFunctionStub_Recording_DebugBreak(); |
+ } else { |
+ return isolate->builtins()->CallFunctionStub_DebugBreak(); |
+ } |
} |
UNREACHABLE(); |