nsCvrtJSValToStr(b0, cx, argv[0]);
ConvertJSValToStr(b0, cx, argv[0]);
InstallTriggerGlobalStartSoftwareUpdate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){  nsIDOMInstallTriggerGlobal *nativeThis = (nsIDOMInstallTriggerGlobal*)JS_GetPrivate(cx, obj);  JSBool       rBool = JS_FALSE;  PRInt32      nativeRet;  nsAutoString b0;  PRInt32      b1;  *rval = JSVAL_NULL;  // If there's no private data, this must be the prototype, so ignore  if (nsnull == nativeThis) {    return JS_TRUE;  }  if (argc >= 2)  {    //  public int StartSoftwareUpdate(String url,    //                                 int flag);    nsCvrtJSValToStr(b0, cx, argv[0]);    if(!JS_ValueToInt32(cx, argv[1], (int32 *)&b1))    {      JS_ReportError(cx, "2nd parameter must be a number");      return JS_FALSE;    }    if(NS_OK != nativeThis->StartSoftwareUpdate(b0, b1, &nativeRet))    {      return JS_FALSE;    }    *rval = INT_TO_JSVAL(nativeRet);  }  else if(argc >= 1)  {    //  public int StartSoftwareUpdate(String url);    nsCvrtJSValToStr(b0, cx, argv[0]);    if(NS_OK != nativeThis->StartSoftwareUpdate(b0, &nativeRet))    {      return JS_FALSE;    }    *rval = INT_TO_JSVAL(nativeRet);  }  else  {    JS_ReportError(cx, "Function StartSoftwareUpdate requires 2 parameters");    return JS_FALSE;  }  return JS_TRUE;}