ConvertJSValToStr(b0, cx, argv[0]);  jsrefcount saveDepth = JS_SuspendRequest(cx);  nativeThis->Confirm(b0, &nativeRet);  JS_ResumeRequest(cx, saveDepth);  *rval = INT_TO_JSVAL(nativeRet); } else { JS_ReportError(cx, "Function LogComment requires 1 parameter");
JS_ReportError(cx, "Function Confirm requires at least 1 parameter");
InstallConfirm(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){  nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);  nsAutoString b0;  PRInt32 nativeRet;  *rval = JSVAL_NULL;  // If there's no private data, this must be the prototype, so ignore  if(nsnull == nativeThis)  {    return JS_TRUE;  }  if(argc == 1)  {    //  public int InstallConfirm (String aComment);    ConvertJSValToStr(b0, cx, argv[0]);    jsrefcount saveDepth = JS_SuspendRequest(cx);//Need to suspend use of thread or deadlock occurs    nativeThis->Confirm(b0, &nativeRet);    JS_ResumeRequest(cx, saveDepth);    *rval = INT_TO_JSVAL(nativeRet);  }  else  {    JS_ReportError(cx, "Function LogComment requires 1 parameter");    return JS_FALSE;  }  return JS_TRUE;}