diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-10-20 15:21:20 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-11-07 09:00:30 +0000 |
commit | f7cc4b4acd97871f99d146da3bbeed951ff4670c (patch) | |
tree | 3a2755c5704ea248a9c00d967588d53c29e62a8b /src/qml/jsruntime/qv4jscall_p.h | |
parent | c6c79644dc869259482a011f8b737f709af02fb2 (diff) |
Add a FunctionObject::call(AsConstructor) overload
add an overload taking a JSCallData for convenience.
Change-Id: I8ebc190354943e6ceed676c3c0e1803586426769
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4jscall_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4jscall_p.h | 19 |
1 files changed, 16 insertions, 3 deletions
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<FunctionObject &>(ptr->function).call(&ptr->thisObject, ptr->args, ptr->argc()); + return static_cast<FunctionObject &>(ptr->function).call(*this); } ReturnedValue callAsConstructor() const { - return static_cast<FunctionObject &>(ptr->function).callAsConstructor(ptr->args, ptr->argc()); + return static_cast<FunctionObject &>(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; |