diff options
Diffstat (limited to 'src/components/script/dom/characterdata.rs')
-rw-r--r-- | src/components/script/dom/characterdata.rs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/components/script/dom/characterdata.rs b/src/components/script/dom/characterdata.rs index 0ad5f35bc78..f4bb567b5c6 100644 --- a/src/components/script/dom/characterdata.rs +++ b/src/components/script/dom/characterdata.rs @@ -4,19 +4,34 @@ //! DOM bindings for `CharacterData`. +use dom::bindings::codegen::InheritTypes::CharacterDataDerived; +use dom::bindings::js::JS; use dom::bindings::utils::{Fallible, ErrorResult}; use dom::bindings::utils::{Reflectable, Reflector}; -use dom::document::AbstractDocument; -use dom::node::{Node, NodeTypeId}; +use dom::document::Document; +use dom::eventtarget::{EventTarget, NodeTargetTypeId}; +use dom::node::{CommentNodeTypeId, Node, NodeTypeId, TextNodeTypeId, ProcessingInstructionNodeTypeId}; use servo_util::str::DOMString; +#[deriving(Encodable)] pub struct CharacterData { node: Node, data: DOMString, } +impl CharacterDataDerived for EventTarget { + fn is_characterdata(&self) -> bool { + match self.type_id { + NodeTargetTypeId(TextNodeTypeId) | + NodeTargetTypeId(CommentNodeTypeId) | + NodeTargetTypeId(ProcessingInstructionNodeTypeId) => true, + _ => false + } + } +} + impl CharacterData { - pub fn new_inherited(id: NodeTypeId, data: DOMString, document: AbstractDocument) -> CharacterData { + pub fn new_inherited(id: NodeTypeId, data: DOMString, document: JS<Document>) -> CharacterData { CharacterData { node: Node::new_inherited(id, document), data: data |