PRInt32& aChangeHint)
nsChangeHint& aChangeHint)
PRBool CSSParserImpl::ParseBorder(PRInt32& aErrorCode, nsCSSDeclaration* aDeclaration,                                  PRInt32& aChangeHint){  const PRInt32 numProps = 3;  static const nsCSSProperty kBorderIDs[] = {    eCSSProperty_border_top_width,  // only one value per property    eCSSProperty_border_top_style,    eCSSProperty_border_top_color  };  nsCSSValue  values[numProps];  PRInt32 found = ParseChoice(aErrorCode, values, kBorderIDs, numProps);  if ((found < 1) || (PR_FALSE == ExpectEndProperty(aErrorCode, PR_TRUE))) {    return PR_FALSE;  }  if (0 == (found & 1)) { // provide missing border width's    values[0].SetIntValue(NS_STYLE_BORDER_WIDTH_MEDIUM, eCSSUnit_Enumerated);  }    if (0 == (found & 2)) { // provide missing border style's    values[1].SetNoneValue();  }  if (0 == (found & 4)) { // text color will be used    values[2].SetIntValue(NS_STYLE_COLOR_MOZ_USE_TEXT_COLOR, eCSSUnit_Enumerated);  }  PRInt32 index;  for (index = 0; index < 4; index++) {    AppendValue(aDeclaration, kBorderWidthIDs[index], values[0], aChangeHint);    AppendValue(aDeclaration, kBorderStyleIDs[index], values[1], aChangeHint);    AppendValue(aDeclaration, kBorderColorIDs[index], values[2], aChangeHint);  }  return PR_TRUE;}