Greetings,
I am embedding Spidermonkey in a C app. and I'm having trouble setting
class (not instance) property values. For example, I am setting up
the class as follows:
static JSBool constructor(JSC ontext *cx, JSObject *obj, uintN argc, jsval
*argv, jsval *rval)
{
printf("constru ctor argc = %d\n", argc);
*rval = OBJECT_TO_JSVAL (obj);
return JS_TRUE;
}
main()
{
....
static JSClass my_class = {
"MyClass", JSCLASS_HAS_PRI VATE,
JS_PropertyStub ,JS_PropertyStu b,JS_PropertySt ub,JS_PropertyS tub,
JS_EnumerateStu b,JS_ResolveStu b,JS_ConvertStu b,JS_FinalizeSt ub
};
static JSPropertySpec class_props[] = {
{"Prop1", 0, JSPROP_ENUMERAT E},
{0}
};
JSObject *proto;
proto = JS_InitClass(cx , JS_GetGlobalObj ect(cx), 0, &my_class,
constructor, 1, NULL, NULL, class_props, NULL);
The above code correctly (verified through a JavaScript program)
creates a new class with the Prop1 class property.
The following code correctly adds an _instance_ property:
jsval val = INT_TO_JSVAL(42 );
JS_SetProperty( cx, proto, "MyProp2", &val);
After three days I still can't figure out how to set the value of the class
property,
or, for that matter, create a new class property with a particular value. I
am looking to
do something like this:
jsval val = INT_TO_JSVAL(88 );
JS_SetProperty( cx, ???, "Prop1", &val);
Any help would really be appreciated.
Blake McBride
bl***@integra-online.com