aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4functionobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject.cpp')
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 2ae2cc57e9..e7bd4f7c06 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -56,6 +56,7 @@
#include <qv4runtimecodegen_p.h>
#include "private/qlocale_tools_p.h"
#include "private/qqmlbuiltinfunctions_p.h"
+#include <private/qv4jscall_p.h>
#include <QtCore/QDebug>
#include <algorithm>
@@ -72,13 +73,13 @@ Q_STATIC_ASSERT((Heap::FunctionObject::markTable & Heap::Object::markTable) == H
static ReturnedValue jsCallWrapper(const QV4::FunctionObject *f, const Value *thisObject, const Value *argv, int argc)
{
Scope scope(f->engine());
- JSCall callData(scope, f->asReturnedValue(), argv, argc, thisObject);
+ JSCallData callData(scope, f->asReturnedValue(), argv, argc, thisObject);
return f->vtable()->call(f, callData);
}
ReturnedValue jsConstructWrapper(const QV4::FunctionObject *f, const Value *argv, int argc)
{
Scope scope(f->engine());
- JSCall callData(scope, f->asReturnedValue(), argv, argc);
+ JSCallData callData(scope, f->asReturnedValue(), argv, argc);
return f->vtable()->construct(f, callData);
}
@@ -332,7 +333,7 @@ ReturnedValue FunctionPrototype::method_apply(const BuiltinFunction *b, CallData
v4->jsStackTop = callData->args;
}
- return o->call(callData);
+ return o->call(&callData->thisObject, callData->args, callData->argc());
}
ReturnedValue FunctionPrototype::method_call(const BuiltinFunction *b, CallData *callData)
@@ -513,7 +514,7 @@ ReturnedValue BoundFunction::call(const Managed *that, CallData *callData)
callData->thisObject = f->boundThis();
callData->function = f->target();
- return static_cast<FunctionObject &>(callData->function).call(callData);
+ return static_cast<FunctionObject &>(callData->function).call(&callData->thisObject, callData->args, callData->argc());
}
ReturnedValue BoundFunction::construct(const Managed *that, CallData *callData)
@@ -531,5 +532,5 @@ ReturnedValue BoundFunction::construct(const Managed *that, CallData *callData)
callData->thisObject = f->boundThis();
callData->function = f->target();
- return static_cast<FunctionObject &>(callData->function).construct(callData);
+ return static_cast<FunctionObject &>(callData->function).callAsConstructor(callData->args, callData->argc());
}