summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/debugger/DebuggerCallFrame.cpp
diff options
context:
space:
mode:
authorLeon Clarke <leonclarke@google.com>2010-06-03 14:33:32 +0100
committerLeon Clarke <leonclarke@google.com>2010-06-08 12:24:51 +0100
commit5af96e2c7b73ebc627c6894727826a7576d31758 (patch)
treef9d5e6f6175ccd7e3d14de9b290f08937a0d17ba /JavaScriptCore/debugger/DebuggerCallFrame.cpp
parent8cc4fcf4f6adcbc0e0aebfc24fbad9a4cddf2cfb (diff)
downloadexternal_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.cpp25
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