PRBool  impact = NS_STYLE_HINT_NONE;
nsChangeHint impact = NS_STYLE_HINT_NONE;
nsHTMLUnknownElement::SetAttribute(PRInt32 aNameSpaceID,                                   nsIAtom* aAttribute,                                   const nsAString& aValue,                                   PRBool aNotify){  nsresult  result = NS_OK;  // Check for event handlers  if (aNameSpaceID == kNameSpaceID_None && IsEventName(aAttribute)) {    AddScriptEventListener(aAttribute, aValue);  }    nsHTMLValue val;    if (NS_CONTENT_ATTR_NOT_THERE !=      StringToAttribute(aAttribute, aValue, val)) {    // string value was mapped to nsHTMLValue, set it that way    result = SetHTMLAttribute(aAttribute, val, aNotify);    return result;  } else {    if (ParseCommonAttribute(aAttribute, aValue, val)) {      // string value was mapped to nsHTMLValue, set it that way      result = SetHTMLAttribute(aAttribute, val, aNotify);      return result;    }    if (aValue.IsEmpty()) { // if empty string      val.SetEmptyValue();      result = SetHTMLAttribute(aAttribute, val, aNotify);      return result;    }    if (aNotify && (mDocument)) {      mDocument->BeginUpdate();      mDocument->AttributeWillChange(this, aNameSpaceID, aAttribute);    }    // set as string value to avoid another string copy    PRBool  impact = NS_STYLE_HINT_NONE;    GetMappedAttributeImpact(aAttribute, nsIDOMMutationEvent::MODIFICATION, impact);    nsCOMPtr<nsIHTMLStyleSheet> sheet(dont_AddRef(GetAttrStyleSheet(mDocument)));    if (!mAttributes) {      result = NS_NewHTMLAttributes(&mAttributes);      NS_ENSURE_SUCCESS(result, result);    }    result = mAttributes->SetAttributeFor(aAttribute, aValue,                                           (NS_STYLE_HINT_CONTENT < impact),                                          this, sheet);  }  if (aNotify && (mDocument)) {    result = mDocument->AttributeChanged(this, aNameSpaceID, aAttribute, nsIDOMMutationEvent::MODIFICATION,                                          NS_STYLE_HINT_UNKNOWN);    mDocument->EndUpdate();  }  return result;}