aDeclaration->AddValue(fontNames[2], nsCSSValue(NS_STYLE_FONT_WEIGHT_NORMAL, eCSSUnit_Enumerated));
aDeclaration->AppendValue(fontNames[2], nsCSSValue(NS_STYLE_FONT_WEIGHT_NORMAL, eCSSUnit_Enumerated));
PRBool CSSParserImpl::ParseFont(PRInt32* aErrorCode, nsICSSDeclaration* aDeclaration,                                const char* aName){  static const char* fontNames[] = {    "font-style",    "font-variant",    "font-weight",  };  // Get optional font-style, font-variant and font-weight (in any order)  PRInt32 found = ParseChoice(aErrorCode, aDeclaration, fontNames, 3);  if ((found & 1) == 0) {    // Provide default font-style    aDeclaration->AddValue(fontNames[0],                           nsCSSValue(NS_STYLE_FONT_STYLE_NORMAL, eCSSUnit_Enumerated));  }  if ((found & 2) == 0) {    // Provide default font-variant    aDeclaration->AddValue(fontNames[1],                           nsCSSValue(NS_STYLE_FONT_VARIANT_NORMAL, eCSSUnit_Enumerated));  }  if ((found & 4) == 0) {    // Provide default font-weight    aDeclaration->AddValue(fontNames[2],                           nsCSSValue(NS_STYLE_FONT_WEIGHT_NORMAL, eCSSUnit_Enumerated));  }  // Get mandatory font-size  if (!ParseVariant(aErrorCode, aDeclaration, "font-size",                    VARIANT_KLP, kFontSizeKTable)) {    return PR_FALSE;  }  // Get optional "/" line-height  if (ExpectSymbol(aErrorCode, '/', PR_TRUE)) {    if (!ParseVariant(aErrorCode, aDeclaration, "line-height",                      VARIANT_HLPN | VARIANT_NORMAL, nsnull)) {      return PR_FALSE;    }  }  // Get final mandatory font-family  return ParseFontFamily(aErrorCode, aDeclaration, "font-family");}