diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-11-01 14:21:03 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-11-13 08:56:48 +0000 |
commit | ae4d4b561481907734c8d6c8df5fb0df8ae5f332 (patch) | |
tree | 6324e2794f115303365310b058f8e73e8009af09 /src/qml/jsruntime/qv4functionobject.cpp | |
parent | 4d8c72880cab8db6bdc81b27aa338009054e30fc (diff) |
Convert more builtin methods to new calling convention
Convert the methods of the global object and the remaining
methods in in the Function object.
Change-Id: I7c9a5f39b07f9c9cb0f31e83cdf41fade71a7dc5
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4functionobject.cpp | 20 |
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(); |