PRInt32& aChangeHint)
nsChangeHint& aChangeHint)
PRBool CSSParserImpl::ParseClip(PRInt32& aErrorCode, nsCSSDeclaration* aDeclaration,                                PRInt32& aChangeHint){  static const nsCSSProperty kClipIDs[] = {    eCSSProperty_clip_top,    eCSSProperty_clip_right,    eCSSProperty_clip_bottom,    eCSSProperty_clip_left  };  if (! GetToken(aErrorCode, PR_TRUE)) {    return PR_FALSE;  }  PRInt32 index;  if ((eCSSToken_Ident == mToken.mType) &&       mToken.mIdent.EqualsIgnoreCase("auto")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      nsCSSValue valueAuto(eCSSUnit_Auto);      for (index = 0; index < 4; index++) {        AppendValue(aDeclaration, kClipIDs[index], valueAuto, aChangeHint);      }      return PR_TRUE;    }  } else if ((eCSSToken_Ident == mToken.mType) &&              mToken.mIdent.EqualsIgnoreCase("inherit")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      nsCSSValue  inherit(eCSSUnit_Inherit);      for (index = 0; index < 4; index++) {        AppendValue(aDeclaration, kClipIDs[index], inherit, aChangeHint);      }      return PR_TRUE;    }  }   else if ((eCSSToken_Ident == mToken.mType) &&              mToken.mIdent.EqualsIgnoreCase("-moz-initial")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      nsCSSValue  initial(eCSSUnit_Initial);      for (index = 0; index < 4; index++) {        AppendValue(aDeclaration, kClipIDs[index], initial, aChangeHint);      }      return PR_TRUE;    }  } else if ((eCSSToken_Function == mToken.mType) &&              mToken.mIdent.EqualsIgnoreCase("rect")) {    if (!ExpectSymbol(aErrorCode, '(', PR_TRUE)) {      return PR_FALSE;    }    nsCSSValue  values[4];    for (index = 0; index < 4; index++) {      if (! ParseVariant(aErrorCode, values[index], VARIANT_AL, nsnull)) {        return PR_FALSE;      }      if (3 != index) {        // skip optional commas between elements        ExpectSymbol(aErrorCode, ',', PR_TRUE);      }    }    if (!ExpectSymbol(aErrorCode, ')', PR_TRUE)) {      return PR_FALSE;    }    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      for (index = 0; index < 4; index++) {        AppendValue(aDeclaration, kClipIDs[index], values[index], aChangeHint);      }      return PR_TRUE;    }  } else {    UngetToken();  }  return PR_FALSE;}