JSObject *parent_proto = nsnull;
nsresult NS_InitInstallVersionClass(nsIScriptContext *aContext, void **aPrototype){  JSContext *jscontext = (JSContext *)aContext->GetNativeContext();  JSObject *proto = nsnull;  JSObject *constructor = nsnull;  JSObject *parent_proto = nsnull;  JSObject *global = JS_GetGlobalObject(jscontext);  jsval vp;  if ((PR_TRUE != JS_LookupProperty(jscontext, global, "InstallVersion", &vp)) ||      !JSVAL_IS_OBJECT(vp) ||      ((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||      (PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||       !JSVAL_IS_OBJECT(vp))   {    nsresult rv = InitInstallVersionClass(jscontext, global, (void**)&proto);    if (NS_FAILED(rv)) return rv;  }  else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp))   {    proto = JSVAL_TO_OBJECT(vp);  }  else   {    return NS_ERROR_FAILURE;  }  if (aPrototype)     *aPrototype = proto;    return NS_OK;}