aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno.d@partner.samsung.com>2014-12-12 12:55:55 -0400
committerBruno de Oliveira Abinader <bruno.d@partner.samsung.com>2014-12-26 14:55:27 -0400
commitaa29dc195d04f7d586a6eee5db80bfc575924c86 (patch)
tree014e8412917b33da131e75e303341314fce739af /components/script
parent08e7cf24cd0cdb2f1c0d95718e388b7ab0f4e8ed (diff)
downloadservo-aa29dc195d04f7d586a6eee5db80bfc575924c86.tar.gz
servo-aa29dc195d04f7d586a6eee5db80bfc575924c86.zip
Implement DOMTokenList.add
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/domtokenlist.rs14
-rw-r--r--components/script/dom/webidls/DOMTokenList.webidl3
2 files changed, 16 insertions, 1 deletions
diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs
index 4169e87487f..6f7fbf369ca 100644
--- a/components/script/dom/domtokenlist.rs
+++ b/components/script/dom/domtokenlist.rs
@@ -100,4 +100,18 @@ impl<'a> DOMTokenListMethods for JSRef<'a, DOMTokenList> {
}).unwrap_or(false)
})
}
+
+ // https://dom.spec.whatwg.org/#dom-domtokenlist-add
+ fn Add(self, tokens: Vec<DOMString>) -> ErrorResult {
+ let element = self.element.root();
+ let mut atoms = element.get_tokenlist_attribute(&self.local_name);
+ for token in tokens.iter() {
+ let token = try!(self.check_token_exceptions(token.as_slice()));
+ if !atoms.iter().any(|atom| *atom == token) {
+ atoms.push(token);
+ }
+ }
+ element.set_atomic_tokenlist_attribute(&self.local_name, atoms);
+ Ok(())
+ }
}
diff --git a/components/script/dom/webidls/DOMTokenList.webidl b/components/script/dom/webidls/DOMTokenList.webidl
index bc32f4bf256..67faa24b587 100644
--- a/components/script/dom/webidls/DOMTokenList.webidl
+++ b/components/script/dom/webidls/DOMTokenList.webidl
@@ -10,8 +10,9 @@ interface DOMTokenList {
[Throws]
boolean contains(DOMString token);
+ [Throws]
+ void add(DOMString... tokens);
- //void add(DOMString... tokens);
//void remove(DOMString... tokens);
//boolean toggle(DOMString token, optional boolean force);
//stringifier;