diff options
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4functionobject_p.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4functionobject_p.h b/src/qml/jsruntime/qv4functionobject_p.h index 094d180225..108790a205 100644 --- a/src/qml/jsruntime/qv4functionobject_p.h +++ b/src/qml/jsruntime/qv4functionobject_p.h @@ -114,7 +114,7 @@ struct Q_QML_EXPORT FunctionObject: Object { Heap::ExecutionContext *scope() const { return d()->scope; } Function *function() const { return d()->function; } - ReturnedValue name(); + ReturnedValue name() const; unsigned int formalParameterCount() { return d()->formalParameterCount(); } unsigned int varCount() { return d()->varCount(); } @@ -127,10 +127,6 @@ struct Q_QML_EXPORT FunctionObject: Object { static ReturnedValue construct(const Managed *that, CallData *); static ReturnedValue call(const Managed *that, CallData *d); - static FunctionObject *cast(const Value &v) { - return v.asFunctionObject(); - } - static Heap::FunctionObject *createScriptFunction(ExecutionContext *scope, Function *function, bool createProto = true); ReturnedValue protoProperty() { return memberData()->data[Heap::FunctionObject::Index_Prototype].asReturnedValue(); } @@ -145,9 +141,16 @@ struct Q_QML_EXPORT FunctionObject: Object { template<> inline const FunctionObject *Value::as() const { - return asFunctionObject(); + return isManaged() && m && m->vtable->isFunctionObject ? reinterpret_cast<const FunctionObject *>(this) : 0; } +template<> +inline FunctionObject *managed_cast(Managed *m) +{ + return m ? m->as<FunctionObject>() : 0; +} + + struct FunctionCtor: FunctionObject { V4_OBJECT2(FunctionCtor, FunctionObject) |