JS_ReportError(cx, "%s has no properties",
JS_ReportErrorNumber(cx, NULL, JSMSG_NO_PROPERTIES,
js_ValueToNonNullObject(JSContext *cx, jsval v){    JSObject *obj;    JSString *str;    if (!js_ValueToObject(cx, v, &obj))	return NULL;    if (!obj) {	str = js_DecompileValueGenerator(cx, v, NULL);	if (str) {	    JS_ReportError(cx, "%s has no properties",			   JS_GetStringBytes(str));	}    }    return obj;}