From f7cc4b4acd97871f99d146da3bbeed951ff4670c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 20 Oct 2017 15:21:20 +0200 Subject: Add a FunctionObject::call(AsConstructor) overload add an overload taking a JSCallData for convenience. Change-Id: I8ebc190354943e6ceed676c3c0e1803586426769 Reviewed-by: Erik Verbruggen --- src/qml/jsruntime/qv4jscall_p.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/qml/jsruntime/qv4jscall_p.h') diff --git a/src/qml/jsruntime/qv4jscall_p.h b/src/qml/jsruntime/qv4jscall_p.h index f356f29ca2..291e108853 100644 --- a/src/qml/jsruntime/qv4jscall_p.h +++ b/src/qml/jsruntime/qv4jscall_p.h @@ -106,7 +106,7 @@ struct JSCallData { memcpy(ptr->args, argv, argc*sizeof(Value)); } - CallData *operator->() { + CallData *operator->() const { return ptr; } @@ -115,16 +115,29 @@ struct JSCallData { } ReturnedValue call() const { - return static_cast(ptr->function).call(&ptr->thisObject, ptr->args, ptr->argc()); + return static_cast(ptr->function).call(*this); } ReturnedValue callAsConstructor() const { - return static_cast(ptr->function).callAsConstructor(ptr->args, ptr->argc()); + return static_cast(ptr->function).callAsConstructor(*this); } CallData *ptr; }; +inline +ReturnedValue FunctionObject::callAsConstructor(const JSCallData &data) const +{ + return d()->jsConstruct(this, data->args, data->argc()); +} + +inline +ReturnedValue FunctionObject::call(const JSCallData &data) const +{ + return d()->jsCall(this, &data->thisObject, data->args, data->argc()); +} + + struct ScopedStackFrame { Scope &scope; CppStackFrame frame; -- cgit v1.2.3