aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4jscall_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-10-20 15:21:20 +0200
committerLars Knoll <lars.knoll@qt.io>2017-11-07 09:00:30 +0000
commitf7cc4b4acd97871f99d146da3bbeed951ff4670c (patch)
tree3a2755c5704ea248a9c00d967588d53c29e62a8b /src/qml/jsruntime/qv4jscall_p.h
parentc6c79644dc869259482a011f8b737f709af02fb2 (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.h19
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;