JSBool JSJSGlobalObject::fromjs_deleteTimer(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { // get instance JSGlobalObject *object = static_cast<JSGlobalObject *>(reinterpret_cast<JSScriptable *>(JS_GetPrivate(cx, obj))); if (!object) { JSScriptable::js_throwNullCallException(JSJSGlobalObject::classDescriptor.name, JSJSGlobalObject::functionTable[3].name); return JS_FALSE; } // record context object->js_setCurrentContext(cx); // JSTimer *timer JSObject *p0; if (!JS_ValueToObject(cx, argv[0], &p0)) return JS_FALSE; argv[0] = OBJECT_TO_JSVAL(p0); JSTimer *p0o = NULL; if (p0) { JSScriptable *pobj = reinterpret_cast<JSScriptable*>(JS_GetPrivate(cx, p0)); if (!pobj) { object->js_throwNullParamException(0, JSJSGlobalObject::functionTable[3].name, JSJSGlobalObject::classDescriptor.name); return JS_FALSE; } p0o = static_cast<JSTimer *>(pobj->js_getInterface(JS_JSTimer_GUID)); if (!p0o) { object->js_throwParamTypeException(0, JSJSTimer::classDescriptor.name, JSJSGlobalObject::functionTable[3].name, JSJSGlobalObject::classDescriptor.name); return JS_FALSE; } } // call method ASSERT(object != NULL); object->deleteTimer(p0o); // success return JS_TRUE; }