diff options
author | Leon Clarke <leonclarke@google.com> | 2010-06-03 14:33:32 +0100 |
---|---|---|
committer | Leon Clarke <leonclarke@google.com> | 2010-06-08 12:24:51 +0100 |
commit | 5af96e2c7b73ebc627c6894727826a7576d31758 (patch) | |
tree | f9d5e6f6175ccd7e3d14de9b290f08937a0d17ba /JavaScriptCore/debugger/DebuggerCallFrame.cpp | |
parent | 8cc4fcf4f6adcbc0e0aebfc24fbad9a4cddf2cfb (diff) | |
download | external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.zip external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.tar.gz external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.tar.bz2 |
Merge webkit.org at r60469 : Initial merge by git.
Change-Id: I66a0047aa2af802f66bb0c7f2a8b02247a596234
Diffstat (limited to 'JavaScriptCore/debugger/DebuggerCallFrame.cpp')
-rw-r--r-- | JavaScriptCore/debugger/DebuggerCallFrame.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/JavaScriptCore/debugger/DebuggerCallFrame.cpp b/JavaScriptCore/debugger/DebuggerCallFrame.cpp index a734b1d..da9cb52 100644 --- a/JavaScriptCore/debugger/DebuggerCallFrame.cpp +++ b/JavaScriptCore/debugger/DebuggerCallFrame.cpp @@ -44,10 +44,10 @@ const UString* DebuggerCallFrame::functionName() const if (!m_callFrame->callee()) return 0; - JSFunction* function = asFunction(m_callFrame->callee()); - if (!function) + JSObject* function = m_callFrame->callee(); + if (!function || !function->inherits(&JSFunction::info)) return 0; - return &function->name(m_callFrame); + return &asFunction(function)->name(m_callFrame); } UString DebuggerCallFrame::calculatedFunctionName() const @@ -55,13 +55,11 @@ UString DebuggerCallFrame::calculatedFunctionName() const if (!m_callFrame->codeBlock()) return UString(); - if (!m_callFrame->callee()) - return UString(); + JSObject* function = m_callFrame->callee(); + if (!function || !function->inherits(&JSFunction::info)) + return 0; - JSFunction* function = asFunction(m_callFrame->callee()); - if (!function) - return UString(); - return function->calculatedDisplayName(m_callFrame); + return asFunction(function)->calculatedDisplayName(m_callFrame); } DebuggerCallFrame::Type DebuggerCallFrame::type() const @@ -74,10 +72,15 @@ DebuggerCallFrame::Type DebuggerCallFrame::type() const JSObject* DebuggerCallFrame::thisObject() const { - if (!m_callFrame->codeBlock()) + CodeBlock* codeBlock = m_callFrame->codeBlock(); + if (!codeBlock) + return 0; + + JSValue thisValue = m_callFrame->r(codeBlock->thisRegister()).jsValue(); + if (!thisValue.isObject()) return 0; - return asObject(m_callFrame->thisValue()); + return asObject(thisValue); } JSValue DebuggerCallFrame::evaluate(const UString& script, JSValue& exception) const |