if (!lookup_member_by_id(cx, jEnv, obj, &java_wrapper, id, NULL, &member_descriptor))
if (!lookup_member_by_id(cx, jEnv, obj, &java_wrapper, id, &member_descriptor))
PR_STATIC_CALLBACK(JSBool)JavaObject_setPropertyById(JSContext *cx, JSObject *obj, jsid id, jsval *vp){    jobject java_obj;    const char *member_name;    JavaObjectWrapper *java_wrapper;    JavaClassDescriptor *class_descriptor;    JavaMemberDescriptor *member_descriptor;    jsval idval;    JNIEnv *jEnv;    /* printf("In JavaObject_setProperty\n"); */    /* Get the Java per-thread environment pointer for this JSContext */    jsj_MapJSContextToJSJThread(cx, &jEnv);    if (!jEnv)        return JS_FALSE;        if (!lookup_member_by_id(cx, jEnv, obj, &java_wrapper, id, NULL, &member_descriptor))        return JS_FALSE;    /* Check for the case where there is a method with the give name, but no field       with that name */    if (!member_descriptor->field)        goto no_such_field;    /* Silently fail if field value is final (immutable), as required by ECMA spec */    if (member_descriptor->field->modifiers & ACC_FINAL)        return JS_TRUE;        java_obj = java_wrapper->java_obj;    return jsj_SetJavaFieldValue(cx, jEnv, member_descriptor->field, java_obj, *vp);no_such_field:        JS_IdToValue(cx, id, &idval);        member_name = JS_GetStringBytes(JSVAL_TO_STRING(idval));        class_descriptor = java_wrapper->class_descriptor;        JS_ReportError(cx, "No instance field named \"%s\" in Java class %s",                       member_name, class_descriptor->name);        return JS_FALSE;}