diff options
author | bors-servo <release+servo@mozilla.com> | 2013-11-13 19:22:39 -0800 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2013-11-13 19:22:39 -0800 |
commit | 82dd9b56998ed5559e349033f8f75e18f169314b (patch) | |
tree | 487e254d05c28b52a408067c19e20b1e577b79a1 /src/components/script | |
parent | e9ecf3c584c418866aa21c7cb7386a696f466eb8 (diff) | |
parent | d57c3a8149814fae43ce0a52208fee5b46f570a9 (diff) | |
download | servo-82dd9b56998ed5559e349033f8f75e18f169314b.tar.gz servo-82dd9b56998ed5559e349033f8f75e18f169314b.zip |
auto merge of #1251 : Ms2ger/servo/attr-localname, r=kmcallister
Diffstat (limited to 'src/components/script')
-rw-r--r-- | src/components/script/dom/attr.rs | 41 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 4 |
2 files changed, 17 insertions, 28 deletions
diff --git a/src/components/script/dom/attr.rs b/src/components/script/dom/attr.rs index f963ae962c9..e11c47ee8a6 100644 --- a/src/components/script/dom/attr.rs +++ b/src/components/script/dom/attr.rs @@ -8,13 +8,11 @@ use dom::bindings::utils::reflect_dom_object; use dom::namespace::{Namespace, Null}; use dom::window::Window; -use std::str::eq_slice; - pub struct Attr { reflector_: Reflector, - priv local_name: Option<~str>, - value: ~str, - name: ~str, + local_name: DOMString, + value: DOMString, + name: DOMString, namespace: Namespace, prefix: Option<DOMString> } @@ -30,8 +28,9 @@ impl Reflectable for Attr { } impl Attr { - fn new_inherited(name: ~str, value: ~str, local_name: Option<~str>, - namespace: Namespace, prefix: Option<~str>) -> Attr { + fn new_inherited(local_name: DOMString, value: DOMString, + name: DOMString, namespace: Namespace, + prefix: Option<DOMString>) -> Attr { Attr { reflector_: Reflector::new(), local_name: local_name, @@ -42,35 +41,25 @@ impl Attr { } } - pub fn new(window: &Window, name: ~str, value: ~str) -> @mut Attr { - Attr::new_helper(window, name, value, None, Null, None) + pub fn new(window: &Window, local_name: DOMString, value: DOMString) -> @mut Attr { + let name = local_name.clone(); + Attr::new_helper(window, local_name, value, name, Null, None) } - pub fn new_ns(window: &Window, name: ~str, value: ~str, local_name: ~str, namespace: Namespace, - prefix: Option<~str>) -> @mut Attr { - let local_name = if eq_slice(local_name, name) { - None - } else { - Some(local_name) - }; + pub fn new_ns(window: &Window, local_name: DOMString, value: DOMString, + name: DOMString, namespace: Namespace, + prefix: Option<DOMString>) -> @mut Attr { Attr::new_helper(window, name, value, local_name, namespace, prefix) } - fn new_helper(window: &Window, name: ~str, value: ~str, local_name: Option<~str>, - namespace: Namespace, prefix: Option<~str>) -> @mut Attr { + fn new_helper(window: &Window, name: DOMString, value: DOMString, local_name: DOMString, + namespace: Namespace, prefix: Option<DOMString>) -> @mut Attr { let attr = Attr::new_inherited(name, value, local_name, namespace, prefix); reflect_dom_object(@mut attr, window, AttrBinding::Wrap) } - pub fn local_name<'a>(&'a self) -> &'a str { - match self.local_name { - Some(ref x) => x.as_slice(), - None => self.name.as_slice() - } - } - pub fn LocalName(&self) -> DOMString { - self.local_name().to_owned() + self.local_name.clone() } pub fn Value(&self) -> DOMString { diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index b6c883b13a3..0495e4baacc 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -175,7 +175,7 @@ impl<'self> Element { let name = name.to_ascii_lower(); self.attrs.find_equiv(&name).and_then(|attrs| { do attrs.iter().find |attr| { - eq_slice(attr.local_name(), name) && attr.namespace == namespace + eq_slice(attr.local_name, name) && attr.namespace == namespace }.map(|x| *x) }) } @@ -227,7 +227,7 @@ impl<'self> Element { // update value. let mut found = false; for attr in old_value.mut_iter() { - if eq_slice(attr.local_name(), *name) && + if eq_slice(attr.local_name, *name) && attr.namespace == new_value.namespace { *attr = new_value; found = true; |