diff options
Diffstat (limited to 'src')
4 files changed, 37 insertions, 15 deletions
diff --git a/src/components/script/dom/htmltablecellelement.rs b/src/components/script/dom/htmltablecellelement.rs index 365030b90be..771cd389ecb 100644 --- a/src/components/script/dom/htmltablecellelement.rs +++ b/src/components/script/dom/htmltablecellelement.rs @@ -12,7 +12,7 @@ pub struct HTMLTableCellElement { } impl HTMLTableCellElement { - pub fn new(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLTableCellElement { + pub fn new_inherited(type_id: ElementTypeId, tag_name: ~str, document: AbstractDocument) -> HTMLTableCellElement { HTMLTableCellElement { htmlelement: HTMLElement::new(type_id, tag_name, document) } diff --git a/src/components/script/dom/htmltabledatacellelement.rs b/src/components/script/dom/htmltabledatacellelement.rs index f0a69d97409..4b3dda09745 100644 --- a/src/components/script/dom/htmltabledatacellelement.rs +++ b/src/components/script/dom/htmltabledatacellelement.rs @@ -2,8 +2,25 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +use dom::bindings::codegen::HTMLTableDataCellElementBinding; +use dom::document::AbstractDocument; +use dom::element::HTMLTableDataCellElementTypeId; use dom::htmltablecellelement::HTMLTableCellElement; +use dom::node::{AbstractNode, Node, ScriptView}; pub struct HTMLTableDataCellElement { htmltablecellelement: HTMLTableCellElement, } + +impl HTMLTableDataCellElement { + pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLTableDataCellElement { + HTMLTableDataCellElement { + htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableDataCellElementTypeId, localName, document) + } + } + + pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> { + let element = HTMLTableDataCellElement::new_inherited(localName, document); + Node::reflect_node(@mut element, document, HTMLTableDataCellElementBinding::Wrap) + } +} diff --git a/src/components/script/dom/htmltableheadercellelement.rs b/src/components/script/dom/htmltableheadercellelement.rs index e7bb4b0fa38..59a9d596aea 100644 --- a/src/components/script/dom/htmltableheadercellelement.rs +++ b/src/components/script/dom/htmltableheadercellelement.rs @@ -2,8 +2,25 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +use dom::bindings::codegen::HTMLTableHeaderCellElementBinding; +use dom::document::AbstractDocument; +use dom::element::HTMLTableHeaderCellElementTypeId; use dom::htmltablecellelement::HTMLTableCellElement; +use dom::node::{AbstractNode, Node, ScriptView}; pub struct HTMLTableHeaderCellElement { htmltablecellelement: HTMLTableCellElement, } + +impl HTMLTableHeaderCellElement { + pub fn new_inherited(localName: ~str, document: AbstractDocument) -> HTMLTableHeaderCellElement { + HTMLTableHeaderCellElement { + htmltablecellelement: HTMLTableCellElement::new_inherited(HTMLTableHeaderCellElementTypeId, localName, document) + } + } + + pub fn new(localName: ~str, document: AbstractDocument) -> AbstractNode<ScriptView> { + let element = HTMLTableHeaderCellElement::new_inherited(localName, document); + Node::reflect_node(@mut element, document, HTMLTableHeaderCellElementBinding::Wrap) + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index a8587de354e..57053657185 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -67,17 +67,6 @@ macro_rules! handle_newable_element( } ) ) -macro_rules! handle_htmltablecellelement( - ($cx: expr, - $document: expr, - $tag: expr, - $string: expr, - $type_id: expr, - $ctor: ident) => ( - handle_element_base!(htmltablecellelement, HTMLTableCellElement, - $cx, $document, $tag, $string, $type_id, $ctor, []); - ) -) macro_rules! handle_element_base( ($parent: ident, $parent_init: ident, @@ -299,11 +288,10 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str, document: AbstractDocum handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement); handle_newable_element!(document, tag, "audio", HTMLAudioElement); + handle_newable_element!(document, tag, "td", HTMLTableDataCellElement); + handle_newable_element!(document, tag, "th", HTMLTableHeaderCellElement); handle_newable_element!(document, tag, "video", HTMLVideoElement); - handle_htmltablecellelement!(cx, document, tag, "td", HTMLTableDataCellElementTypeId, HTMLTableDataCellElement); - handle_htmltablecellelement!(cx, document, tag, "th", HTMLTableHeaderCellElementTypeId, HTMLTableHeaderCellElement); - return HTMLUnknownElement::new(tag.to_str(), document); } |