*rval = JSVAL_NULL;
*rval = INT_TO_JSVAL(nsInstall::UNEXPECTED_ERROR);
InstallFileOpDirRename(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){  nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);  PRInt32 nativeRet;  nsAutoString b0;  nsAutoString 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 DirRename (String aSourceFolder,    //                        String aTargetFolder);    ConvertJSValToStr(b0, cx, argv[0]);    ConvertJSValToStr(b1, cx, argv[1]);    nsFileSpec fsB0(b0);// fix: nsFileSpec::Rename() does not accept new name as a//      nsFileSpec type.  It only accepts a char* type for the new name//      This is a bug with nsFileSpec.  A char* will be used until//      nsFileSpec if fixed.//    nsFileSpec fsB1(b1);    if(NS_OK != nativeThis->FileOpDirRename(fsB0, b1, &nativeRet))    {      return JS_FALSE;    }    *rval = INT_TO_JSVAL(nativeRet); }  else  {    JS_ReportError(cx, "Function DirRename requires 2 parameters");    return JS_FALSE;  }  return JS_TRUE;}