Rubber stamped by hyatt.
[WebKit-https.git] / JavaScriptGlue / UserObjectImp.h
1 #ifndef __UserObjectImp_h
2 #define __UserObjectImp_h
3
4 /*
5         UserObjectImp.h
6 */
7
8 #include "JSUtils.h"
9 #include "JSBase.h"
10 #include "JSObject.h"
11
12 class UserObjectImp : public ObjectImp
13 {
14     public:
15         UserObjectImp(JSUserObject* userObject);
16         virtual                 ~UserObjectImp();
17     
18         virtual const ClassInfo *classInfo() const;
19         static  const ClassInfo info;
20         
21         virtual bool    implementsCall() const;
22
23                 virtual bool hasProperty(ExecState *exec, const Identifier &propertyName) const;
24                 virtual ReferenceList UserObjectImp::propList(ExecState *exec, bool recursive=true);
25
26         virtual Value   call(ExecState *exec, Object &thisObj, const List &args);
27 #if JAG_PINK_OR_LATER
28                 virtual Value   get(ExecState *exec, const Identifier &propertyName) const;
29                 virtual void    put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
30 #else
31         virtual Value   get(ExecState* exec, const UString& propertyName) const;
32         virtual void    put(ExecState* exec, const UString& propertyName, const Value& value, int attr = None);
33 #endif
34
35                 virtual Value toPrimitive(ExecState *exec, Type preferredType = UnspecifiedType) const;
36                 virtual bool toBoolean(ExecState *exec) const;
37                 virtual double toNumber(ExecState *exec) const;
38                 virtual UString toString(ExecState *exec) const;
39
40         
41                 virtual void mark();
42                 
43         JSUserObject* GetJSUserObject() const;
44         protected:
45                 UserObjectImp();
46     private:
47         JSUserObject* fJSUserObject;
48 };
49
50
51 #endif