aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2013-11-13 19:22:39 -0800
committerbors-servo <release+servo@mozilla.com>2013-11-13 19:22:39 -0800
commit82dd9b56998ed5559e349033f8f75e18f169314b (patch)
tree487e254d05c28b52a408067c19e20b1e577b79a1 /src/components/script
parente9ecf3c584c418866aa21c7cb7386a696f466eb8 (diff)
parentd57c3a8149814fae43ce0a52208fee5b46f570a9 (diff)
downloadservo-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.rs41
-rw-r--r--src/components/script/dom/element.rs4
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;