diff --git a/src/components/script/dom/bindings/element.rs b/src/components/script/dom/bindings/element.rs index ac7d544bc72..81c3eb6ec33 100644 --- a/src/components/script/dom/bindings/element.rs +++ b/src/components/script/dom/bindings/element.rs @@ -8,6 +8,7 @@ use dom::bindings::utils::{BindingObject, Reflector, Reflectable, Traceable}; use js::jsapi::{JSContext, JSObject, JSTracer}; +// generate_cacheable_wrapper macro_rules! generate_cacheable_wrapper( ($name: path, $wrap: path) => ( impl Reflectable for $name { @@ -46,6 +47,44 @@ macro_rules! generate_cacheable_wrapper_htmlelement( ) ) +macro_rules! generate_cacheable_wrapper_htmlmediaelement( + ($name: path, $wrap: path) => ( + impl Reflectable for $name { + fn reflector<'a>(&'a self) -> &'a Reflector { + self.htmlmediaelement.reflector() + } + + fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector { + self.htmlmediaelement.mut_reflector() + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + $wrap(cx, scope, self, &mut unused) + } + } + ) +) + +macro_rules! generate_cacheable_wrapper_htmltablecellelement( + ($name: path, $wrap: path) => ( + impl Reflectable for $name { + fn reflector<'a>(&'a self) -> &'a Reflector { + self.htmltablecellelement.reflector() + } + + fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector { + self.htmltablecellelement.mut_reflector() + } + + fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { + let mut unused = false; + $wrap(cx, scope, self, &mut unused) + } + } + ) +) + macro_rules! generate_cacheable_wrapper_node( ($name: path, $wrap: path) => ( impl Reflectable for $name { @@ -65,6 +104,8 @@ macro_rules! generate_cacheable_wrapper_node( ) ) + +// generate_binding_object macro_rules! generate_binding_object( ($name: path) => ( impl BindingObject for $name { @@ -85,6 +126,26 @@ macro_rules! generate_binding_object_htmlelement( ) ) +macro_rules! generate_binding_object_htmlmediaelement( + ($name: path) => ( + impl BindingObject for $name { + fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> { + self.htmlmediaelement.GetParentObject(cx) + } + } + ) +) + +macro_rules! generate_binding_object_htmltablecellelement( + ($name: path) => ( + impl BindingObject for $name { + fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> { + self.htmltablecellelement.GetParentObject(cx) + } + } + ) +) + macro_rules! generate_binding_object_node( ($name: path) => ( impl BindingObject for $name { @@ -95,6 +156,8 @@ macro_rules! generate_binding_object_node( ) ) + +// generate_traceable macro_rules! generate_traceable( ($name: path) => ( impl Traceable for $name { @@ -115,6 +178,26 @@ macro_rules! generate_traceable_htmlelement( ) ) +macro_rules! generate_traceable_htmlmediaelement( + ($name: path) => ( + impl Traceable for $name { + fn trace(&self, trc: *mut JSTracer) { + self.htmlmediaelement.trace(trc); + } + } + ) +) + +macro_rules! generate_traceable_htmltablecellelement( + ($name: path) => ( + impl Traceable for $name { + fn trace(&self, trc: *mut JSTracer) { + self.htmltablecellelement.trace(trc); + } + } + ) +) + macro_rules! generate_traceable_node( ($name: path) => ( impl Traceable for $name { @@ -157,9 +240,9 @@ generate_cacheable_wrapper_htmlelement!(HTMLAreaElement, HTMLAreaElementBinding: generate_binding_object_htmlelement!(HTMLAreaElement) generate_traceable_htmlelement!(HTMLAreaElement) -generate_cacheable_wrapper_htmlelement!(HTMLAudioElement, HTMLAudioElementBinding::Wrap) -generate_binding_object_htmlelement!(HTMLAudioElement) -generate_traceable_htmlelement!(HTMLAudioElement) +generate_cacheable_wrapper_htmlmediaelement!(HTMLAudioElement, HTMLAudioElementBinding::Wrap) +generate_binding_object_htmlmediaelement!(HTMLAudioElement) +generate_traceable_htmlmediaelement!(HTMLAudioElement) generate_cacheable_wrapper_htmlelement!(HTMLBaseElement, HTMLBaseElementBinding::Wrap) generate_binding_object_htmlelement!(HTMLBaseElement) @@ -357,13 +440,13 @@ generate_cacheable_wrapper_htmlelement!(HTMLTableCellElement, HTMLTableCellEleme generate_binding_object_htmlelement!(HTMLTableCellElement) generate_traceable_htmlelement!(HTMLTableCellElement) -generate_cacheable_wrapper_htmlelement!(HTMLTableDataCellElement, HTMLTableDataCellElementBinding::Wrap) -generate_binding_object_htmlelement!(HTMLTableDataCellElement) -generate_traceable_htmlelement!(HTMLTableDataCellElement) +generate_cacheable_wrapper_htmltablecellelement!(HTMLTableDataCellElement, HTMLTableDataCellElementBinding::Wrap) +generate_binding_object_htmltablecellelement!(HTMLTableDataCellElement) +generate_traceable_htmltablecellelement!(HTMLTableDataCellElement) -generate_cacheable_wrapper_htmlelement!(HTMLTableHeaderCellElement, HTMLTableHeaderCellElementBinding::Wrap) -generate_binding_object_htmlelement!(HTMLTableHeaderCellElement) -generate_traceable_htmlelement!(HTMLTableHeaderCellElement) +generate_cacheable_wrapper_htmltablecellelement!(HTMLTableHeaderCellElement, HTMLTableHeaderCellElementBinding::Wrap) +generate_binding_object_htmltablecellelement!(HTMLTableHeaderCellElement) +generate_traceable_htmltablecellelement!(HTMLTableHeaderCellElement) generate_cacheable_wrapper_htmlelement!(HTMLTableColElement, HTMLTableColElementBinding::Wrap) generate_binding_object_htmlelement!(HTMLTableColElement) @@ -405,9 +488,9 @@ generate_cacheable_wrapper_htmlelement!(HTMLUnknownElement, HTMLUnknownElementBi generate_binding_object_htmlelement!(HTMLUnknownElement) generate_traceable_htmlelement!(HTMLUnknownElement) -generate_cacheable_wrapper_htmlelement!(HTMLVideoElement, HTMLVideoElementBinding::Wrap) -generate_binding_object_htmlelement!(HTMLVideoElement) -generate_traceable_htmlelement!(HTMLVideoElement) +generate_cacheable_wrapper_htmlmediaelement!(HTMLVideoElement, HTMLVideoElementBinding::Wrap) +generate_binding_object_htmlmediaelement!(HTMLVideoElement) +generate_traceable_htmlmediaelement!(HTMLVideoElement) generate_traceable!(HTMLElement) generate_traceable_node!(Element) diff --git a/src/components/script/dom/htmlaudioelement.rs b/src/components/script/dom/htmlaudioelement.rs index 4014e81afec..dbb33a42331 100644 --- a/src/components/script/dom/htmlaudioelement.rs +++ b/src/components/script/dom/htmlaudioelement.rs @@ -5,7 +5,7 @@ use dom::htmlmediaelement::HTMLMediaElement; pub struct HTMLAudioElement { - htmlelement: HTMLMediaElement + htmlmediaelement: HTMLMediaElement } impl HTMLAudioElement { diff --git a/src/components/script/dom/htmlmediaelement.rs b/src/components/script/dom/htmlmediaelement.rs index d415515de10..39c45a3585d 100644 --- a/src/components/script/dom/htmlmediaelement.rs +++ b/src/components/script/dom/htmlmediaelement.rs @@ -154,3 +154,4 @@ impl HTMLMediaElement { Ok(()) } } + diff --git a/src/components/script/dom/htmltablecellelement.rs b/src/components/script/dom/htmltablecellelement.rs index 2f69ea89571..365030b90be 100644 --- a/src/components/script/dom/htmltablecellelement.rs +++ b/src/components/script/dom/htmltablecellelement.rs @@ -140,3 +140,4 @@ impl HTMLTableCellElement { Ok(()) } } + diff --git a/src/components/script/dom/htmltabledatacellelement.rs b/src/components/script/dom/htmltabledatacellelement.rs index f3e315aed48..f0a69d97409 100644 --- a/src/components/script/dom/htmltabledatacellelement.rs +++ b/src/components/script/dom/htmltabledatacellelement.rs @@ -5,5 +5,5 @@ use dom::htmltablecellelement::HTMLTableCellElement; pub struct HTMLTableDataCellElement { - htmlelement: HTMLTableCellElement, + htmltablecellelement: HTMLTableCellElement, } diff --git a/src/components/script/dom/htmltableheadercellelement.rs b/src/components/script/dom/htmltableheadercellelement.rs index bb4ae5c77c6..e7bb4b0fa38 100644 --- a/src/components/script/dom/htmltableheadercellelement.rs +++ b/src/components/script/dom/htmltableheadercellelement.rs @@ -5,5 +5,5 @@ use dom::htmltablecellelement::HTMLTableCellElement; pub struct HTMLTableHeaderCellElement { - htmlelement: HTMLTableCellElement, + htmltablecellelement: HTMLTableCellElement, } diff --git a/src/components/script/dom/htmlvideoelement.rs b/src/components/script/dom/htmlvideoelement.rs index a4d5dcb44d2..a485480ad04 100644 --- a/src/components/script/dom/htmlvideoelement.rs +++ b/src/components/script/dom/htmlvideoelement.rs @@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult}; use dom::htmlmediaelement::HTMLMediaElement; pub struct HTMLVideoElement { - htmlelement: HTMLMediaElement + htmlmediaelement: HTMLMediaElement } impl HTMLVideoElement { diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 234517929d1..e3b948641e6 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -61,7 +61,7 @@ macro_rules! handle_htmlmediaelement( ($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident) => ( if eq_slice($tag, $string) { let _element = @$ctor { - htmlelement: HTMLMediaElement::new($type_id, ($tag).to_str(), document) + htmlmediaelement: HTMLMediaElement::new($type_id, ($tag).to_str(), document) }; unsafe { return Node::as_abstract_node(cx, _element); @@ -73,7 +73,7 @@ macro_rules! handle_htmltablecellelement( ($cx: expr, $tag:expr, $string:expr, $type_id:expr, $ctor:ident) => ( if eq_slice($tag, $string) { let _element = @$ctor { - htmlelement: HTMLTableCellElement::new($type_id, ($tag).to_str(), document) + htmltablecellelement: HTMLTableCellElement::new($type_id, ($tag).to_str(), document) }; unsafe { return Node::as_abstract_node(cx, _element);