Chromium Code Reviews| Index: Source/core/inspector/JavaScriptCallFrame.cpp |
| diff --git a/Source/core/inspector/JavaScriptCallFrame.cpp b/Source/core/inspector/JavaScriptCallFrame.cpp |
| index e997c2b051eb4246e7324a605b4ce3cfe3cbb3d1..600e491796fceb9753f9781d804ba28109b2375a 100644 |
| --- a/Source/core/inspector/JavaScriptCallFrame.cpp |
| +++ b/Source/core/inspector/JavaScriptCallFrame.cpp |
| @@ -56,7 +56,7 @@ JavaScriptCallFrame* JavaScriptCallFrame::caller() |
| v8::Handle<v8::Context> debuggerContext = m_debuggerContext.newLocal(m_isolate); |
| v8::Context::Scope contextScope(debuggerContext); |
| v8::Handle<v8::Value> callerFrame = m_callFrame.newLocal(m_isolate)->Get(v8AtomicString(m_isolate, "caller")); |
| - if (!callerFrame->IsObject()) |
| + if (callerFrame.IsEmpty() || !callerFrame->IsObject()) |
| return 0; |
| m_caller = JavaScriptCallFrame::create(debuggerContext, v8::Handle<v8::Object>::Cast(callerFrame)); |
| } |
| @@ -69,9 +69,9 @@ int JavaScriptCallFrame::callV8FunctionReturnInt(const char* name) const |
| v8::Handle<v8::Object> callFrame = m_callFrame.newLocal(m_isolate); |
| v8::Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(callFrame->Get(v8AtomicString(m_isolate, name))); |
| v8::Handle<v8::Value> result = func->Call(callFrame, 0, 0); |
| - if (result->IsInt32()) |
| - return result->Int32Value(); |
| - return 0; |
| + if (result.IsEmpty() || !result->IsInt32()) |
|
aandrey
2014/07/25 10:00:51
maybe we should add a context scope:
v8::Context::
aandrey
2014/07/25 10:11:52
Done.
|
| + return 0; |
| + return result->Int32Value(); |
| } |
| String JavaScriptCallFrame::callV8FunctionReturnString(const char* name) const |
| @@ -140,9 +140,9 @@ bool JavaScriptCallFrame::isAtReturn() const |
| v8::HandleScope handleScope(m_isolate); |
| v8::Context::Scope contextScope(m_debuggerContext.newLocal(m_isolate)); |
| v8::Handle<v8::Value> result = m_callFrame.newLocal(m_isolate)->Get(v8AtomicString(m_isolate, "isAtReturn")); |
| - if (result->IsBoolean()) |
| - return result->BooleanValue(); |
| - return false; |
| + if (result.IsEmpty() || !result->IsBoolean()) |
| + return false; |
| + return result->BooleanValue(); |
| } |
| v8::Handle<v8::Value> JavaScriptCallFrame::returnValue() const |