Refactoring, return an Atom from Element::parsed_name. #5774

This commit is contained in:
Maciej Skrzypkowski 2015-06-17 12:24:05 +02:00
parent c6ca389d54
commit 21f495139f
2 changed files with 7 additions and 8 deletions

View file

@ -541,7 +541,7 @@ pub enum StylePriority {
pub trait ElementHelpers<'a> {
fn html_element_in_html_document(self) -> bool;
fn local_name(self) -> &'a Atom;
fn parsed_name(self, name: DOMString) -> DOMString;
fn parsed_name(self, name: DOMString) -> Atom;
fn namespace(self) -> &'a Namespace;
fn prefix(self) -> &'a Option<DOMString>;
fn attrs(&self) -> Ref<Vec<JS<Attr>>>;
@ -568,11 +568,11 @@ impl<'a> ElementHelpers<'a> for &'a Element {
&self.local_name
}
fn parsed_name(self, name: DOMString) -> DOMString {
fn parsed_name(self, name: DOMString) -> Atom {
if self.html_element_in_html_document() {
name.to_ascii_lowercase()
Atom::from_slice(&name.to_ascii_lowercase())
} else {
name
Atom::from_slice(&name)
}
}
@ -856,7 +856,7 @@ impl<'a> AttributeHandlers for &'a Element {
// https://dom.spec.whatwg.org/#concept-element-attributes-get-by-name
fn get_attribute_by_name(self, name: DOMString) -> Option<Root<Attr>> {
let name = &Atom::from_slice(&self.parsed_name(name));
let name = &self.parsed_name(name);
// FIXME(https://github.com/rust-lang/rust/issues/23338)
let attrs = self.attrs.borrow();
attrs.iter().map(|attr| attr.root())
@ -1221,7 +1221,6 @@ impl<'a> ElementMethods for &'a Element {
let name = self.parsed_name(name);
// Step 3-5.
let name = Atom::from_slice(&name);
let value = self.parse_attribute(&ns!(""), &name, value);
self.do_set_attribute(name.clone(), value, name.clone(), ns!(""), None, |attr| {
*attr.name() == name
@ -1248,7 +1247,7 @@ impl<'a> ElementMethods for &'a Element {
// https://dom.spec.whatwg.org/#dom-element-removeattribute
fn RemoveAttribute(self, name: DOMString) {
let name = Atom::from_slice(&self.parsed_name(name));
let name = self.parsed_name(name);
self.remove_attribute_by_name(&name);
}

View file

@ -79,7 +79,7 @@ impl<'a> NamedNodeMapMethods for &'a NamedNodeMap {
// FIXME(https://github.com/rust-lang/rust/issues/23338)
let owner = owner.r();
let name = owner.parsed_name(name);
owner.remove_attribute_by_name(&Atom::from_slice(&name)).ok_or(Error::NotFound)
owner.remove_attribute_by_name(&name).ok_or(Error::NotFound)
}
// https://dom.spec.whatwg.org/#dom-namednodemap-removenameditemns