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); |