2 #include <JSWebAPIErrorFactory.h>
6 using namespace DeviceAPI::Common;
13 JSClassRef JSSuper::m_jsClassRef = NULL;
15 JSClassDefinition JSSuper::m_jsClassInfo = {
16 0, // current (and only) version is 0
17 kJSClassAttributeNone, //attributes
21 JSSuper::m_function, // static functions
22 JSSuper::initialize, // initialize
23 JSSuper::finalize, //finalize
27 NULL, //deleteProperty
28 NULL, //getPropertyNames
29 NULL, // callAsFunction
36 JSStaticFunction JSSuper::m_function[] = {
37 { "base", JSSuper::base, kJSPropertyAttributeNone },
38 { "override", JSSuper::override, kJSPropertyAttributeNone },
42 const JSClassRef JSSuper::getClassRef()
45 m_jsClassRef = JSClassCreate(&m_jsClassInfo);
50 const JSClassDefinition* JSSuper::getClassInfo()
52 return &m_jsClassInfo;
55 void JSSuper::initialize(JSContextRef ctx, JSObjectRef object)
57 printf("JSSuper::initialize()\n");
60 void JSSuper::finalize(JSObjectRef object)
62 printf("JSSuper::finalize()\n");
63 Super * priv = static_cast<Super*>(JSObjectGetPrivate(object));
65 JSObjectSetPrivate(object, NULL);
70 JSObjectRef JSSuper::constructor(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception){
71 printf("JSSuper::constructor()\n");
72 Super * priv = new Super();
73 JSObjectRef obj = JSObjectMake(ctx, getClassRef(), priv);
74 JSUtil::setProperty(ctx, obj, "constructor", constructor, kJSPropertyAttributeReadOnly|kJSPropertyAttributeDontDelete|kJSPropertyAttributeDontEnum);
78 JSValueRef JSSuper::base(JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception){
79 printf("JSSuper::base()\n");
80 Super * priv = static_cast<Super*>(JSObjectGetPrivate(thisObject));
83 return JSValueMakeUndefined(ctx);
86 JSValueRef JSSuper::override(JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception){
87 printf("JSSuper::override()\n");
88 Super * priv = static_cast<Super*>(JSObjectGetPrivate(thisObject));
90 return JSValueMakeUndefined(ctx);