aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/element.rs')
-rw-r--r--src/components/script/dom/element.rs25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index fd50118a9ec..fb6cb9e8d2a 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -14,6 +14,7 @@ use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode};
use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery};
use layout_interface::{ContentBoxesResponse};
use newcss::stylesheet::Stylesheet;
+use servo_util::tree::{TreeNodeRef, ElementLike};
use js::jsapi::{JSContext, JSObject};
@@ -119,17 +120,12 @@ pub enum ElementTypeId {
// Element methods
//
-impl<'self> Element {
- pub fn new(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> Element {
- Element {
- node: Node::new(ElementNodeTypeId(type_id), document),
- tag_name: tag_name,
- attrs: ~[],
- style_attribute: None,
- }
+impl ElementLike for Element {
+ fn get_local_name<'a>(&'a self) -> &'a str {
+ self.tag_name.as_slice()
}
- pub fn get_attr(&'self self, name: &str) -> Option<&'self str> {
+ fn get_attr<'a>(&'a self, name: &str) -> Option<&'a str> {
// FIXME: Need an each() that links lifetimes in Rust.
for attr in self.attrs.iter() {
// FIXME: only case-insensitive in the HTML namespace (as opposed to SVG, etc.)
@@ -140,6 +136,17 @@ impl<'self> Element {
}
return None;
}
+}
+
+impl<'self> Element {
+ pub fn new(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> Element {
+ Element {
+ node: Node::new(ElementNodeTypeId(type_id), document),
+ tag_name: tag_name,
+ attrs: ~[],
+ style_attribute: None,
+ }
+ }
pub fn set_attr(&mut self,
abstract_self: AbstractNode<ScriptView>,