src/script/bridge/qscriptobject_p.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    65                                     JSC::PropertySlot&);
    65                                     JSC::PropertySlot&);
    66     virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
    66     virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
    67     virtual void put(JSC::ExecState* exec, const JSC::Identifier& propertyName,
    67     virtual void put(JSC::ExecState* exec, const JSC::Identifier& propertyName,
    68                      JSC::JSValue, JSC::PutPropertySlot&);
    68                      JSC::JSValue, JSC::PutPropertySlot&);
    69     virtual bool deleteProperty(JSC::ExecState*,
    69     virtual bool deleteProperty(JSC::ExecState*,
    70                                 const JSC::Identifier& propertyName,
    70                                 const JSC::Identifier& propertyName);
    71                                 bool checkDontDelete = true);
       
    72     virtual bool getPropertyAttributes(JSC::ExecState*, const JSC::Identifier&,
       
    73                                        unsigned&) const;
       
    74     virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&,
    71     virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&,
    75                                      bool includeNonEnumerable = false);
    72                                      JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
    76     virtual void markChildren(JSC::MarkStack& markStack);
    73     virtual void markChildren(JSC::MarkStack& markStack);
    77     virtual JSC::CallType getCallData(JSC::CallData&);
    74     virtual JSC::CallType getCallData(JSC::CallData&);
    78     virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
    75     virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
    79     virtual bool hasInstance(JSC::ExecState*, JSC::JSValue value, JSC::JSValue proto);
    76     virtual bool hasInstance(JSC::ExecState*, JSC::JSValue value, JSC::JSValue proto);
    80     virtual bool compareToObject(JSC::ExecState*, JSC::JSObject*);
    77     virtual bool compareToObject(JSC::ExecState*, JSC::JSObject*);
    82     virtual const JSC::ClassInfo* classInfo() const { return &info; }
    79     virtual const JSC::ClassInfo* classInfo() const { return &info; }
    83     static const JSC::ClassInfo info;
    80     static const JSC::ClassInfo info;
    84 
    81 
    85     static WTF::PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
    82     static WTF::PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
    86     {
    83     {
    87         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, JSC::ImplementsHasInstance | JSC::OverridesHasInstance));
    84         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags));
    88     }
    85     }
    89 
    86 
    90     inline JSC::JSValue data() const;
    87     inline JSC::JSValue data() const;
    91     inline void setData(JSC::JSValue data);
    88     inline void setData(JSC::JSValue data);
    92 
    89 
    93     inline QScriptObjectDelegate *delegate() const;
    90     inline QScriptObjectDelegate *delegate() const;
    94     inline void setDelegate(QScriptObjectDelegate *delegate);
    91     inline void setDelegate(QScriptObjectDelegate *delegate);
    95 
    92 
    96 protected:
    93 protected:
       
    94     static const unsigned StructureFlags = JSC::ImplementsHasInstance | JSC::OverridesHasInstance | JSC::OverridesGetOwnPropertySlot | JSC::OverridesMarkChildren | JSC::OverridesGetPropertyNames | JSObject::StructureFlags;
       
    95 
    97     Data *d;
    96     Data *d;
    98 };
    97 };
    99 
    98 
   100 class QScriptObjectPrototype : public QScriptObject
    99 class QScriptObjectPrototype : public QScriptObject
   101 {
   100 {
   126                                     const JSC::Identifier& propertyName,
   125                                     const JSC::Identifier& propertyName,
   127                                     JSC::PropertyDescriptor&);
   126                                     JSC::PropertyDescriptor&);
   128     virtual void put(QScriptObject*, JSC::ExecState* exec, const JSC::Identifier& propertyName,
   127     virtual void put(QScriptObject*, JSC::ExecState* exec, const JSC::Identifier& propertyName,
   129                      JSC::JSValue, JSC::PutPropertySlot&);
   128                      JSC::JSValue, JSC::PutPropertySlot&);
   130     virtual bool deleteProperty(QScriptObject*, JSC::ExecState*,
   129     virtual bool deleteProperty(QScriptObject*, JSC::ExecState*,
   131                                 const JSC::Identifier& propertyName,
   130                                 const JSC::Identifier& propertyName);
   132                                 bool checkDontDelete = true);
       
   133     virtual bool getPropertyAttributes(const QScriptObject*, JSC::ExecState*,
       
   134                                        const JSC::Identifier&, unsigned&) const;
       
   135     virtual void getOwnPropertyNames(QScriptObject*, JSC::ExecState*, JSC::PropertyNameArray&,
   131     virtual void getOwnPropertyNames(QScriptObject*, JSC::ExecState*, JSC::PropertyNameArray&,
   136                                      bool includeNonEnumerable = false);
   132                                      JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
   137     virtual void markChildren(QScriptObject*, JSC::MarkStack& markStack);
   133     virtual void markChildren(QScriptObject*, JSC::MarkStack& markStack);
   138     virtual JSC::CallType getCallData(QScriptObject*, JSC::CallData&);
   134     virtual JSC::CallType getCallData(QScriptObject*, JSC::CallData&);
   139     virtual JSC::ConstructType getConstructData(QScriptObject*, JSC::ConstructData&);
   135     virtual JSC::ConstructType getConstructData(QScriptObject*, JSC::ConstructData&);
   140     virtual bool hasInstance(QScriptObject*, JSC::ExecState*,
   136     virtual bool hasInstance(QScriptObject*, JSC::ExecState*,
   141                              JSC::JSValue value, JSC::JSValue proto);
   137                              JSC::JSValue value, JSC::JSValue proto);