24
#include "JSEventTargetNode.h"
26
27
namespace WebCore {
30
class JSAttr : public JSEventTargetNode {
31
typedef JSEventTargetNode Base;
31
class JSAttr : public JSNode {
33
JSAttr(PassRefPtr<JSC::Structure>, PassRefPtr<Attr>);
34
JSAttr(NonNullPassRefPtr<JSC::Structure>, JSDOMGlobalObject*, PassRefPtr<Attr>);
34
35
static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
35
36
virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertySlot&);
36
virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValuePtr, JSC::PutPropertySlot&);
37
virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::PropertyDescriptor&);
38
virtual void put(JSC::ExecState*, const JSC::Identifier& propertyName, JSC::JSValue, JSC::PutPropertySlot&);
37
39
virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
38
40
static const JSC::ClassInfo s_info;
40
static PassRefPtr<JSC::Structure> createStructure(JSC::JSValuePtr prototype)
42
static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
42
44
return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType));
45
static JSC::JSValuePtr getConstructor(JSC::ExecState*);
47
virtual void markChildren(JSC::MarkStack&);
49
static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
47
51
// Custom attributes
48
void setValue(JSC::ExecState*, JSC::JSValuePtr);
52
void setValue(JSC::ExecState*, JSC::JSValue);
51
55
return static_cast<Attr*>(Base::impl());
55
Attr* toAttr(JSC::JSValuePtr);
59
Attr* toAttr(JSC::JSValue);
57
61
class JSAttrPrototype : public JSC::JSObject {
62
typedef JSC::JSObject Base;
59
64
static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
60
65
virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
61
66
static const JSC::ClassInfo s_info;
62
JSAttrPrototype(PassRefPtr<JSC::Structure> structure) : JSC::JSObject(structure) { }
67
static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
69
return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType));
71
JSAttrPrototype(NonNullPassRefPtr<JSC::Structure> structure) : JSC::JSObject(structure) { }
67
JSC::JSValuePtr jsAttrName(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
68
JSC::JSValuePtr jsAttrSpecified(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
69
JSC::JSValuePtr jsAttrValue(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
70
void setJSAttrValue(JSC::ExecState*, JSC::JSObject*, JSC::JSValuePtr);
71
JSC::JSValuePtr jsAttrOwnerElement(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
72
JSC::JSValuePtr jsAttrStyle(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
73
JSC::JSValuePtr jsAttrConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
76
JSC::JSValue jsAttrName(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
77
JSC::JSValue jsAttrSpecified(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
78
JSC::JSValue jsAttrValue(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
79
void setJSAttrValue(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
80
JSC::JSValue jsAttrOwnerElement(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
81
JSC::JSValue jsAttrStyle(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
82
JSC::JSValue jsAttrConstructor(JSC::ExecState*, const JSC::Identifier&, const JSC::PropertySlot&);
75
84
} // namespace WebCore