if (!lookup_member_by_id(cx, jEnv, obj, &java_wrapper, id, &member, &member_descriptor))
if (!lookup_member_by_id(cx, jEnv, obj, &java_wrapper, id, &member_descriptor))
JavaObject_getPropertyById(JSContext *cx, JSObject *obj, jsid id, jsval *vp){    jobject java_obj;    JavaMemberDescriptor *member_descriptor;    JavaMemberVal *member;    JavaObjectWrapper *java_wrapper;    JNIEnv *jEnv;    /* printf("In JavaObject_getProperty\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, &member, &member_descriptor))        return JS_FALSE;    /* Handle access to "constructor" property of prototype object with       silent failure. */    if (!member_descriptor) {        *vp = JSVAL_VOID;        return JS_TRUE;    }    java_obj = java_wrapper->java_obj;    if (member_descriptor->field) {        if (!member_descriptor->methods) {            return jsj_GetJavaFieldValue(cx, jEnv, member_descriptor->field, java_obj, vp);        } else {            PR_ASSERT(0);        }    } else {        *vp = member->invoke_method_func_val;        return JS_TRUE;    }}