Introduce HTML{Audio,Video}Element::new.

This commit is contained in:
Ms2ger 2013-10-31 15:22:15 +01:00
parent cc76a2188e
commit 618447445f
4 changed files with 42 additions and 11 deletions

View file

@ -56,15 +56,15 @@ macro_rules! handle_htmlelement(
$cx, $document, $tag, $string, $type_id, $ctor, []);
)
)
macro_rules! handle_htmlmediaelement(
($cx: expr,
$document: expr,
$tag: expr,
macro_rules! handle_newable_element(
($document: expr,
$localName: expr,
$string: expr,
$type_id: expr,
$ctor: ident) => (
handle_element_base!(htmlmediaelement, HTMLMediaElement,
$cx, $document, $tag, $string, $type_id, $ctor, []);
$ctor: ident
$(, $arg:expr )*) => (
if eq_slice($localName, $string) {
return $ctor::new(($localName).to_str(), $document $(, $arg)*);
}
)
)
macro_rules! handle_htmltablecellelement(
@ -298,8 +298,8 @@ pub fn build_element_from_tag(cx: *JSContext, tag: &str, document: AbstractDocum
handle_htmlelement!(cx, document, tag, "section", HTMLElementTypeId, HTMLElement);
handle_htmlelement!(cx, document, tag, "small", HTMLElementTypeId, HTMLElement);
handle_htmlmediaelement!(cx, document, tag, "audio", HTMLAudioElementTypeId, HTMLAudioElement);
handle_htmlmediaelement!(cx, document, tag, "video", HTMLVideoElementTypeId, HTMLVideoElement);
handle_newable_element!(document, tag, "audio", HTMLAudioElement);
handle_newable_element!(document, tag, "video", HTMLVideoElement);
handle_htmltablecellelement!(cx, document, tag, "td", HTMLTableDataCellElementTypeId, HTMLTableDataCellElement);
handle_htmltablecellelement!(cx, document, tag, "th", HTMLTableHeaderCellElementTypeId, HTMLTableHeaderCellElement);