diff options
author | Bruno de Oliveira Abinader <bruno.d@partner.samsung.com> | 2014-12-16 11:02:04 -0400 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno.d@partner.samsung.com> | 2014-12-26 13:08:20 -0400 |
commit | c5f7e553e43d865194d3251e584b166f4aa1095d (patch) | |
tree | 6517ac46a0c8409b93b1ca8f721aaffa77802508 /components/script/dom/attr.rs | |
parent | eb3678fa286fc2480624c977b1de5b60a971b3f7 (diff) | |
download | servo-c5f7e553e43d865194d3251e584b166f4aa1095d.tar.gz servo-c5f7e553e43d865194d3251e584b166f4aa1095d.zip |
Avoid duplicated tokens in AttrValue::from_serialized_tokenlist
Diffstat (limited to 'components/script/dom/attr.rs')
-rw-r--r-- | components/script/dom/attr.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index 2b821371819..a848ca85e0c 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -38,8 +38,12 @@ pub enum AttrValue { impl AttrValue { pub fn from_serialized_tokenlist(tokens: DOMString) -> AttrValue { - let atoms = split_html_space_chars(tokens.as_slice()) - .map(|token| Atom::from_slice(token)).collect(); + let mut atoms: Vec<Atom> = vec!(); + for token in split_html_space_chars(tokens.as_slice()).map(|slice| Atom::from_slice(slice)) { + if !atoms.iter().any(|atom| *atom == token) { + atoms.push(token); + } + } AttrValue::TokenList(tokens, atoms) } |