diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 8c858c2d3b6..60c12399160 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -655,6 +655,7 @@ pub trait AttributeHandlers { fn set_url_attribute(self, name: &Atom, value: DOMString); fn get_string_attribute(self, name: &Atom) -> DOMString; fn set_string_attribute(self, name: &Atom, value: DOMString); + fn get_tokenlist_attribute(self, name: &Atom) -> Vec; fn set_tokenlist_attribute(self, name: &Atom, value: DOMString); fn set_atomic_tokenlist_attribute(self, name: &Atom, tokens: Vec); fn get_uint_attribute(self, name: &Atom) -> u32; @@ -847,6 +848,15 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { self.set_attribute(name, AttrValue::String(value)); } + fn get_tokenlist_attribute(self, name: &Atom) -> Vec { + self.get_attribute(ns!(""), name).root().map(|attr| { + attr.value() + .tokens() + .expect("Expected a TokenListAttrValue") + .to_vec() + }).unwrap_or(vec!()) + } + fn set_tokenlist_attribute(self, name: &Atom, value: DOMString) { assert!(name.as_slice() == name.as_slice().to_ascii_lower().as_slice()); self.set_attribute(name, AttrValue::from_serialized_tokenlist(value));