Skip to content
Permalink
Browse files

DOMTokenList::check_token_exceptions now returns an Atom

  • Loading branch information
brunoabinader committed Dec 26, 2014
1 parent 51fac3d commit 08e7cf24cd0cdb2f1c0d95718e388b7ab0f4e8ed
Showing with 11 additions and 11 deletions.
  1. +11 −11 components/script/dom/domtokenlist.rs
@@ -5,7 +5,7 @@
use dom::attr::{Attr, AttrHelpers};
use dom::bindings::codegen::Bindings::DOMTokenListBinding;
use dom::bindings::codegen::Bindings::DOMTokenListBinding::DOMTokenListMethods;
use dom::bindings::error::Fallible;
use dom::bindings::error::{ErrorResult, Fallible};
use dom::bindings::error::Error::{InvalidCharacter, Syntax};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable};
@@ -48,7 +48,7 @@ impl Reflectable for DOMTokenList {

trait PrivateDOMTokenListHelpers {
fn attribute(self) -> Option<Temporary<Attr>>;
fn check_token_exceptions<'a>(self, token: &'a str) -> Fallible<&'a str>;
fn check_token_exceptions<'a>(self, token: &'a str) -> Fallible<Atom>;
}

impl<'a> PrivateDOMTokenListHelpers for JSRef<'a, DOMTokenList> {
@@ -57,11 +57,11 @@ impl<'a> PrivateDOMTokenListHelpers for JSRef<'a, DOMTokenList> {
element.get_attribute(ns!(""), &self.local_name)
}

fn check_token_exceptions<'a>(self, token: &'a str) -> Fallible<&'a str> {
fn check_token_exceptions<'a>(self, token: &'a str) -> Fallible<Atom> {
match token {
"" => Err(Syntax),
token if token.find(HTML_SPACE_CHARACTERS).is_some() => Err(InvalidCharacter),
token => Ok(token)
slice if slice.find(HTML_SPACE_CHARACTERS).is_some() => Err(InvalidCharacter),
slice => Ok(Atom::from_slice(slice))
}
}
}
@@ -90,13 +90,13 @@ impl<'a> DOMTokenListMethods for JSRef<'a, DOMTokenList> {

// http://dom.spec.whatwg.org/#dom-domtokenlist-contains
fn Contains(self, token: DOMString) -> Fallible<bool> {
self.check_token_exceptions(token.as_slice()).map(|slice| {
self.check_token_exceptions(token.as_slice()).map(|token| {
self.attribute().root().map(|attr| {
let value = attr.value();
let tokens = value.tokens()
.expect("Should have parsed this attribute");
let atom = Atom::from_slice(slice);
tokens.iter().any(|token| *token == atom)
attr.value()
.tokens()
.expect("Should have parsed this attribute")
.iter()
.any(|atom| *atom == token)
}).unwrap_or(false)
})
}

0 comments on commit 08e7cf2

Please sign in to comment.
You can’t perform that action at this time.