Subj : problem on setter of object;'s property To : netscape.public.mozilla.jseng From : "lyg" Date : Tue Feb 10 2004 04:21 pm when i set the value property of a option object , why the GetOptionProperty function is not called ? what is wrong ? Thanks! /*declare option object's property GETTER*/ static JSBool GetOptionProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp); static JSClass OptionClass = { "Option",0, JS_PropertyStub,JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub,JSCLASS_NO_OPTIONAL_MEMBERS }; enum OPTION_PROP_ID { OPTION_VALUE = 0, OPTION_TEXT, }; static JSPropertySpec OptionProperties[] = { {"value", OPTION_VALUE, JSPROP_ENUMERATE|JSPROP_READONLY, GetOptionProperty}, {"text", OPTION_TEXT, JSPROP_ENUMERATE|JSPROP_READONLY, GetOptionProperty}, {0} }; static JSBool Option(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { if (0 < argc && 5 > argc) { char *temp; temp = JS_GetStringBytes( JSVAL_TO_STRING(argv[0]) ); JS_SetProperty(cx, obj, "text", &argv[0]); if (argc > 1) JS_SetProperty(cx, obj, "value", &argv[1]); return JS_TRUE; } else return JS_FALSE; } JSObject * js_InitOptionClass(JSContext *cx, JSObject *obj) { JSObject *proto; proto = JS_InitClass(cx, obj, NULL, &OptionClass, Option, 4, NULL, NULL, OptionProperties, NULL); if (!proto) return NULL; OBJ_SET_SLOT(cx, proto, JSSLOT_PRIVATE, JSVAL_FALSE); return proto; } static JSBool GetOptionProperty (JSContext *cx, JSObject *obj, jsval id, jsval *vp) { int i = 9; return JS_TRUE; } .