nsresult res = NS_OK;  if(Compare(aCharset1, aCharset2, nsCaseInsensitiveStringComparator()) == 0) { *oResult = PR_TRUE; return res; }  if(aCharset1.IsEmpty() || aCharset2.IsEmpty()) { *oResult = PR_FALSE; return res; }  *oResult = PR_FALSE; nsString name1; nsString name2; res = this->GetPreferred(aCharset1, name1); if(NS_SUCCEEDED(res)) { res = this->GetPreferred(aCharset2, name2); if(NS_SUCCEEDED(res)) { *oResult = (name1.EqualsIgnoreCase(name2)) ? PR_TRUE : PR_FALSE; } }  return res;
return NS_ERROR_NOT_IMPLEMENTED;
NS_IMETHODIMP nsCharsetAlias2::Equals(const nsAReadableString& aCharset1, const nsAReadableString& aCharset2, PRBool* oResult){   nsresult res = NS_OK;   if(Compare(aCharset1, aCharset2, nsCaseInsensitiveStringComparator()) == 0) {      *oResult = PR_TRUE;      return res;   }   if(aCharset1.IsEmpty() || aCharset2.IsEmpty()) {      *oResult = PR_FALSE;      return res;   }   *oResult = PR_FALSE;   nsString name1;   nsString name2;   res = this->GetPreferred(aCharset1, name1);   if(NS_SUCCEEDED(res)) {      res = this->GetPreferred(aCharset2, name2);      if(NS_SUCCEEDED(res)) {          *oResult = (name1.EqualsIgnoreCase(name2)) ? PR_TRUE : PR_FALSE;      }   }      return res;}