diff options
Diffstat (limited to 'src/components/script/dom/htmlmapelement.rs')
-rw-r--r-- | src/components/script/dom/htmlmapelement.rs | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/components/script/dom/htmlmapelement.rs b/src/components/script/dom/htmlmapelement.rs index 72214f0ff1d..08a6e2c5c5d 100644 --- a/src/components/script/dom/htmlmapelement.rs +++ b/src/components/script/dom/htmlmapelement.rs @@ -4,14 +4,14 @@ use dom::bindings::codegen::BindingDeclarations::HTMLMapElementBinding; use dom::bindings::codegen::InheritTypes::HTMLMapElementDerived; -use dom::bindings::js::JS; +use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::HTMLMapElementTypeId; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::htmlcollection::{HTMLCollection, Static}; use dom::htmlelement::HTMLElement; -use dom::node::{Node, ElementNodeTypeId}; +use dom::node::{Node, ElementNodeTypeId, window_from_node}; use servo_util::str::DOMString; #[deriving(Encodable)] @@ -29,31 +29,37 @@ impl HTMLMapElementDerived for EventTarget { } impl HTMLMapElement { - pub fn new_inherited(localName: DOMString, document: JS<Document>) -> HTMLMapElement { + pub fn new_inherited(localName: DOMString, document: &JSRef<Document>) -> HTMLMapElement { HTMLMapElement { htmlelement: HTMLElement::new_inherited(HTMLMapElementTypeId, localName, document) } } - pub fn new(localName: DOMString, document: &JS<Document>) -> JS<HTMLMapElement> { - let element = HTMLMapElement::new_inherited(localName, document.clone()); + pub fn new(localName: DOMString, document: &JSRef<Document>) -> Temporary<HTMLMapElement> { + let element = HTMLMapElement::new_inherited(localName, document); Node::reflect_node(~element, document, HTMLMapElementBinding::Wrap) } } -impl HTMLMapElement { - pub fn Name(&self) -> DOMString { +pub trait HTMLMapElementMethods { + fn Name(&self) -> DOMString; + fn SetName(&mut self, _name: DOMString) -> ErrorResult; + fn Areas(&self) -> Temporary<HTMLCollection>; +} + +impl<'a> HTMLMapElementMethods for JSRef<'a, HTMLMapElement> { + fn Name(&self) -> DOMString { ~"" } - pub fn SetName(&mut self, _name: DOMString) -> ErrorResult { + fn SetName(&mut self, _name: DOMString) -> ErrorResult { Ok(()) } - pub fn Areas(&self) -> JS<HTMLCollection> { + fn Areas(&self) -> Temporary<HTMLCollection> { // FIXME: https://github.com/mozilla/servo/issues/1845 - let doc = self.htmlelement.element.node.owner_doc(); - let doc = doc.get(); - HTMLCollection::new(&doc.window, Static(vec!())) + let window = window_from_node(self).root(); + HTMLCollection::new(&*window, Static(vec!())) } } + |