aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/attr.rs
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno.d@partner.samsung.com>2014-12-16 11:02:04 -0400
committerBruno de Oliveira Abinader <bruno.d@partner.samsung.com>2014-12-26 13:08:20 -0400
commitc5f7e553e43d865194d3251e584b166f4aa1095d (patch)
tree6517ac46a0c8409b93b1ca8f721aaffa77802508 /components/script/dom/attr.rs
parenteb3678fa286fc2480624c977b1de5b60a971b3f7 (diff)
downloadservo-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.rs8
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)
}