diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 9f671e2d10ce..87d362dfab82 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -375,11 +375,19 @@ impl HTMLElementMethods for HTMLElement { static DATA_PREFIX: &str = "data-"; static DATA_HYPHEN_SEPARATOR: char = '\x2d'; +fn is_ascii_uppercase(c: char) -> bool { + 'A' <= c && c <= 'Z' +} + +fn is_ascii_lowercase(c: char) -> bool { + 'a' <= c && c <= 'w' +} + fn to_snake_case(name: DOMString) -> DOMString { let mut attr_name = String::with_capacity(name.len() + DATA_PREFIX.len()); attr_name.push_str(DATA_PREFIX); for ch in name.chars() { - if ch.is_ascii_uppercase() { + if is_ascii_uppercase(ch) { attr_name.push(DATA_HYPHEN_SEPARATOR); attr_name.push(ch.to_ascii_lowercase()); } else { @@ -400,7 +408,7 @@ fn to_camel_case(name: &str) -> Option { return None; } let name = &name[5..]; - let has_uppercase = name.chars().any(|curr_char| curr_char.is_ascii_uppercase()); + let has_uppercase = name.chars().any(|curr_char| is_ascii_uppercase(curr_char)); if has_uppercase { return None; } @@ -410,7 +418,7 @@ fn to_camel_case(name: &str) -> Option { //check for hyphen followed by character if curr_char == DATA_HYPHEN_SEPARATOR { if let Some(next_char) = name_chars.next() { - if next_char.is_ascii_lowercase() { + if is_ascii_lowercase(next_char) { result.push(next_char.to_ascii_uppercase()); } else { result.push(curr_char); diff --git a/components/script/lib.rs b/components/script/lib.rs index 6a6a40417e3c..b8b507c9d79c 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -2,7 +2,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#![feature(ascii_ctype)] #![feature(box_syntax)] #![feature(conservative_impl_trait)] #![feature(const_fn)]