src/script/bridge/qscriptqobject_p.h
changeset 30 5dc02b23752f
parent 23 89e065397ea6
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    84 
    84 
    85     virtual void put(QScriptObject*, JSC::ExecState* exec,
    85     virtual void put(QScriptObject*, JSC::ExecState* exec,
    86                      const JSC::Identifier& propertyName,
    86                      const JSC::Identifier& propertyName,
    87                      JSC::JSValue, JSC::PutPropertySlot&);
    87                      JSC::JSValue, JSC::PutPropertySlot&);
    88     virtual bool deleteProperty(QScriptObject*, JSC::ExecState*,
    88     virtual bool deleteProperty(QScriptObject*, JSC::ExecState*,
    89                                 const JSC::Identifier& propertyName,
    89                                 const JSC::Identifier& propertyName);
    90                                 bool checkDontDelete = true);
       
    91     virtual bool getPropertyAttributes(const QScriptObject*, JSC::ExecState*,
       
    92                                        const JSC::Identifier&,
       
    93                                        unsigned&) const;
       
    94     virtual void getOwnPropertyNames(QScriptObject*, JSC::ExecState*,
    90     virtual void getOwnPropertyNames(QScriptObject*, JSC::ExecState*,
    95                                      JSC::PropertyNameArray&,
    91                                      JSC::PropertyNameArray&,
    96                                      bool includeNonEnumerable = false);
    92                                      JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
    97     virtual void markChildren(QScriptObject*, JSC::MarkStack& markStack);
    93     virtual void markChildren(QScriptObject*, JSC::MarkStack& markStack);
    98     virtual bool compareToObject(QScriptObject*, JSC::ExecState*, JSC::JSObject*);
    94     virtual bool compareToObject(QScriptObject*, JSC::ExecState*, JSC::JSObject*);
    99 
    95 
   100     inline QObject *value() const { return data->value; }
    96     inline QObject *value() const { return data->value; }
   101     inline void setValue(QObject* value) { data->value = value; }
    97     inline void setValue(QObject* value) { data->value = value; }
   210     const QMetaObject *metaObject() const;
   206     const QMetaObject *metaObject() const;
   211     int initialIndex() const;
   207     int initialIndex() const;
   212     bool maybeOverloaded() const;
   208     bool maybeOverloaded() const;
   213     int mostGeneralMethod(QMetaMethod *out = 0) const;
   209     int mostGeneralMethod(QMetaMethod *out = 0) const;
   214     QList<int> overloadedIndexes() const;
   210     QList<int> overloadedIndexes() const;
   215     QString functionName() const;
       
   216 
   211 
   217 private:
   212 private:
   218     Data *data;
   213     Data *data;
   219 };
   214 };
   220 
   215 
   274     ~QMetaObjectWrapperObject();
   269     ~QMetaObjectWrapperObject();
   275 
   270 
   276     virtual bool getOwnPropertySlot(JSC::ExecState*,
   271     virtual bool getOwnPropertySlot(JSC::ExecState*,
   277                                     const JSC::Identifier& propertyName,
   272                                     const JSC::Identifier& propertyName,
   278                                     JSC::PropertySlot&);
   273                                     JSC::PropertySlot&);
       
   274     virtual bool getOwnPropertyDescriptor(JSC::ExecState*,
       
   275                                           const JSC::Identifier& propertyName,
       
   276                                           JSC::PropertyDescriptor&);
   279     virtual void put(JSC::ExecState* exec, const JSC::Identifier& propertyName,
   277     virtual void put(JSC::ExecState* exec, const JSC::Identifier& propertyName,
   280                      JSC::JSValue, JSC::PutPropertySlot&);
   278                      JSC::JSValue, JSC::PutPropertySlot&);
   281     virtual bool deleteProperty(JSC::ExecState*,
   279     virtual bool deleteProperty(JSC::ExecState*,
   282                                 const JSC::Identifier& propertyName,
   280                                 const JSC::Identifier& propertyName);
   283                                 bool checkDontDelete = true);
       
   284     virtual bool getPropertyAttributes(JSC::ExecState*, const JSC::Identifier&,
       
   285                                        unsigned&) const;
       
   286     virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&,
   281     virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&,
   287                                      bool includeNonEnumerable = false);
   282                                      JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
   288     virtual void markChildren(JSC::MarkStack& markStack);
   283     virtual void markChildren(JSC::MarkStack& markStack);
   289 
   284 
   290     virtual JSC::CallType getCallData(JSC::CallData&);
   285     virtual JSC::CallType getCallData(JSC::CallData&);
   291     virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
   286     virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
   292 
   287 
   302     inline const QMetaObject *value() const { return data->value; }
   297     inline const QMetaObject *value() const { return data->value; }
   303     inline void setValue(const QMetaObject* value) { data->value = value; }
   298     inline void setValue(const QMetaObject* value) { data->value = value; }
   304 
   299 
   305     static WTF::PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
   300     static WTF::PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
   306     {
   301     {
   307         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, JSC::ImplementsHasInstance));
   302         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags));
   308     }
   303     }
   309 
   304 
   310 protected:
   305 protected:
       
   306     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::OverridesMarkChildren | JSC::OverridesGetPropertyNames | JSC::ImplementsHasInstance | JSObject::StructureFlags;
       
   307 
   311     Data *data;
   308     Data *data;
   312 };
   309 };
   313 
   310 
   314 class QMetaObjectPrototype : public QMetaObjectWrapperObject
   311 class QMetaObjectPrototype : public QMetaObjectWrapperObject
   315 {
   312 {