X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/9dae56ea45a0f5f8136a5c93d6f3a7f99399ca73..f9bf01c6616d5ddcf65b13b33cedf9e387ff7a63:/debugger/DebuggerCallFrame.cpp diff --git a/debugger/DebuggerCallFrame.cpp b/debugger/DebuggerCallFrame.cpp index 27b824c..a3299d4 100644 --- a/debugger/DebuggerCallFrame.cpp +++ b/debugger/DebuggerCallFrame.cpp @@ -41,10 +41,27 @@ const UString* DebuggerCallFrame::functionName() const if (!m_callFrame->codeBlock()) return 0; - JSFunction* function = static_cast(m_callFrame->callee()); + if (!m_callFrame->callee()) + return 0; + + JSFunction* function = asFunction(m_callFrame->callee()); + if (!function) + return 0; + return &function->name(m_callFrame); +} + +UString DebuggerCallFrame::calculatedFunctionName() const +{ + if (!m_callFrame->codeBlock()) + return 0; + + if (!m_callFrame->callee()) + return UString(); + + JSFunction* function = asFunction(m_callFrame->callee()); if (!function) return 0; - return &function->name(&m_callFrame->globalData()); + return function->calculatedDisplayName(m_callFrame); } DebuggerCallFrame::Type DebuggerCallFrame::type() const @@ -63,19 +80,17 @@ JSObject* DebuggerCallFrame::thisObject() const return asObject(m_callFrame->thisValue()); } -JSValuePtr DebuggerCallFrame::evaluate(const UString& script, JSValuePtr& exception) const +JSValue DebuggerCallFrame::evaluate(const UString& script, JSValue& exception) const { if (!m_callFrame->codeBlock()) - return noValue(); + return JSValue(); - int errLine; - UString errMsg; - SourceCode source = makeSource(script); - RefPtr evalNode = m_callFrame->scopeChain()->globalData->parser->parse(m_callFrame, m_callFrame->dynamicGlobalObject()->debugger(), source, &errLine, &errMsg); - if (!evalNode) - return Error::create(m_callFrame, SyntaxError, errMsg, errLine, source.provider()->asID(), source.provider()->url()); + RefPtr eval = EvalExecutable::create(m_callFrame, makeSource(script)); + JSObject* error = eval->compile(m_callFrame, m_callFrame->scopeChain()); + if (error) + return error; - return m_callFrame->scopeChain()->globalData->interpreter->execute(evalNode.get(), m_callFrame, thisObject(), m_callFrame->scopeChain(), &exception); + return m_callFrame->scopeChain()->globalData->interpreter->execute(eval.get(), m_callFrame, thisObject(), m_callFrame->scopeChain(), &exception); } } // namespace JSC