diff options
author | Josh Matthews <josh@joshmatthews.net> | 2014-04-09 20:02:40 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-04-10 10:27:28 +0200 |
commit | ca6cfb5bca2ffbb41dd7735557f11fb5726be6e4 (patch) | |
tree | d2f94f87e1e1c5ca84c02ea45d7bf5cf9d3c1080 /src/components/script/dom/node.rs | |
parent | ea2560ef20ec1116b0897e84fb58eb14a8ea4696 (diff) | |
download | servo-ca6cfb5bca2ffbb41dd7735557f11fb5726be6e4.tar.gz servo-ca6cfb5bca2ffbb41dd7735557f11fb5726be6e4.zip |
Add support for trait-based virtual methods on Nodes, and use it for before_remove_attr and after_set_attr.
Diffstat (limited to 'src/components/script/dom/node.rs')
-rw-r--r-- | src/components/script/dom/node.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index d53c23ad5d2..2f3d1c99b67 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -8,7 +8,7 @@ use dom::attr::Attr; use dom::bindings::codegen::InheritTypes::{CommentCast, DocumentCast, DocumentTypeCast}; use dom::bindings::codegen::InheritTypes::{ElementCast, TextCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{CharacterDataCast, NodeBase, NodeDerived}; -use dom::bindings::codegen::InheritTypes::ProcessingInstructionCast; +use dom::bindings::codegen::InheritTypes::{ProcessingInstructionCast, EventTargetCast}; use dom::bindings::codegen::NodeBinding::NodeConstants; use dom::bindings::js::JS; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; @@ -22,8 +22,9 @@ use dom::documenttype::DocumentType; use dom::element::{Element, ElementTypeId, HTMLAnchorElementTypeId, IElement}; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::nodelist::{NodeList}; -use dom::text::Text; use dom::processinginstruction::ProcessingInstruction; +use dom::text::Text; +use dom::virtualmethods::VirtualMethods; use dom::window::Window; use html::hubbub_html_parser::build_element_from_tag; use layout_interface::{LayoutChan, ReapLayoutDataMsg, UntrustedNodeAddress}; @@ -1834,3 +1835,10 @@ pub fn window_from_node<T: NodeBase>(derived: &JS<T>) -> JS<Window> { let document: JS<Document> = document_from_node(derived); document.get().window.clone() } + +impl VirtualMethods for JS<Node> { + fn super_type(&self) -> Option<~VirtualMethods:> { + let eventtarget: JS<EventTarget> = EventTargetCast::from(self); + Some(~eventtarget as ~VirtualMethods:) + } +} |