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.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp
index 56b62bcad2..e6073425d8 100644
--- a/src/qml/jsruntime/qv4functionobject.cpp
+++ b/src/qml/jsruntime/qv4functionobject.cpp
@@ -277,10 +277,10 @@ void FunctionPrototype::init(ExecutionEngine *engine, Object *ctor)
}
-ReturnedValue FunctionPrototype::method_toString(const BuiltinFunction *b, CallData *callData)
+ReturnedValue FunctionPrototype::method_toString(const FunctionObject *b, const Value *thisObject, const Value *, int)
{
ExecutionEngine *v4 = b->engine();
- FunctionObject *fun = callData->thisObject.as<FunctionObject>();
+ const FunctionObject *fun = thisObject->as<FunctionObject>();
if (!fun)
return v4->throwTypeError();
@@ -345,20 +345,20 @@ ReturnedValue FunctionPrototype::method_call(const QV4::FunctionObject *b, const
return f->call(thisObject, argv, argc);
}
-ReturnedValue FunctionPrototype::method_bind(const BuiltinFunction *b, CallData *callData)
+ReturnedValue FunctionPrototype::method_bind(const FunctionObject *b, const Value *thisObject, const Value *argv, int argc)
{
QV4::Scope scope(b);
- FunctionObject *target = callData->thisObject.as<FunctionObject>();
+ ScopedFunctionObject target(scope, thisObject);
if (!target)
return scope.engine->throwTypeError();
- ScopedValue boundThis(scope, callData->argument(0));
+ ScopedValue boundThis(scope, argc ? argv[0] : Primitive::undefinedValue());
Scoped<MemberData> boundArgs(scope, (Heap::MemberData *)0);
- if (callData->argc() > 1) {
- boundArgs = MemberData::allocate(scope.engine, callData->argc() - 1);
- boundArgs->d()->values.size = callData->argc() - 1;
- for (uint i = 0, ei = static_cast<uint>(callData->argc() - 1); i < ei; ++i)
- boundArgs->set(scope.engine, i, callData->args[i + 1]);
+ if (argc > 1) {
+ boundArgs = MemberData::allocate(scope.engine, argc - 1);
+ boundArgs->d()->values.size = argc - 1;
+ for (uint i = 0, ei = static_cast<uint>(argc - 1); i < ei; ++i)
+ boundArgs->set(scope.engine, i, argv[i + 1]);
}
ExecutionContext *global = scope.engine->rootContext();