#ifndef __JSValueWrapper_h
#define __JSValueWrapper_h
#include "JSUtils.h"
#include "JSBase.h"
#include "JSObject.h"
class JSValueWrapper {
public:
JSValueWrapper(const Value& inValue, ExecState *inExec);
virtual ~JSValueWrapper();
Value& GetValue();
ExecState* GetExecState() const;
ProtectedValue fValue;
ExecState* fExec;
static void GetJSObectCallBacks(JSObjectCallBacks& callBacks);
private:
static void JSObjectDispose(void* data);
static CFArrayRef JSObjectCopyPropertyNames(void* data);
static JSObjectRef JSObjectCopyProperty(void* data, CFStringRef propertyName);
static void JSObjectSetProperty(void* data, CFStringRef propertyName, JSObjectRef jsValue);
static JSObjectRef JSObjectCallFunction(void* data, JSObjectRef thisObj, CFArrayRef args);
static CFTypeRef JSObjectCopyCFValue(void* data);
static void JSObjectMark(void* data);
};
#endif