summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
diff options
context:
space:
mode:
authorTobias Koenig <tokoe@kde.org>2009-06-16 16:07:42 (GMT)
committerTobias Koenig <tokoe@kde.org>2009-06-16 16:07:42 (GMT)
commit65c2d095cddfda32052925654dd1defd314ad4b3 (patch)
tree222ac5b04cd1c7a273b0c22d01d0ff3682d5d2d3 /src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
parentf1e6e89f7ee452af0e4404af537f5fed2a2b2dc5 (diff)
parentd9308550f104526d29b1cdd56514ae3bb967d7f9 (diff)
downloadQt-65c2d095cddfda32052925654dd1defd314ad4b3.zip
Qt-65c2d095cddfda32052925654dd1defd314ad4b3.tar.gz
Qt-65c2d095cddfda32052925654dd1defd314ad4b3.tar.bz2
Merge branch 'master' of git://gitorious.org/qt/qt
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
index b82932e..1b3217b 100644
--- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackFunction.cpp
@@ -46,19 +46,27 @@ JSCallbackFunction::JSCallbackFunction(ExecState* exec, JSObjectCallAsFunctionCa
{
}
-JSValuePtr JSCallbackFunction::call(ExecState* exec, JSObject* functionObject, JSValuePtr thisValue, const ArgList& args)
+JSValue JSCallbackFunction::call(ExecState* exec, JSObject* functionObject, JSValue thisValue, const ArgList& args)
{
JSContextRef execRef = toRef(exec);
JSObjectRef functionRef = toRef(functionObject);
- JSObjectRef thisObjRef = toRef(thisValue->toThisObject(exec));
+ JSObjectRef thisObjRef = toRef(thisValue.toThisObject(exec));
int argumentCount = static_cast<int>(args.size());
Vector<JSValueRef, 16> arguments(argumentCount);
for (int i = 0; i < argumentCount; i++)
- arguments[i] = toRef(args.at(exec, i));
+ arguments[i] = toRef(exec, args.at(i));
- JSLock::DropAllLocks dropAllLocks(exec);
- return toJS(static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), toRef(exec->exceptionSlot())));
+ JSValueRef exception = 0;
+ JSValueRef result;
+ {
+ JSLock::DropAllLocks dropAllLocks(exec);
+ result = static_cast<JSCallbackFunction*>(functionObject)->m_callback(execRef, functionRef, thisObjRef, argumentCount, arguments.data(), &exception);
+ }
+ if (exception)
+ exec->setException(toJS(exec, exception));
+
+ return toJS(exec, result);
}
CallType JSCallbackFunction::getCallData(CallData& callData)