mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
parent
fc9a3baa71
commit
776ab67905
8 changed files with 103 additions and 18 deletions
|
@ -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)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use dom::htmlmediaelement::HTMLMediaElement;
|
||||
|
||||
pub struct HTMLAudioElement {
|
||||
htmlelement: HTMLMediaElement
|
||||
htmlmediaelement: HTMLMediaElement
|
||||
}
|
||||
|
||||
impl HTMLAudioElement {
|
||||
|
|
|
@ -154,3 +154,4 @@ impl HTMLMediaElement {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -140,3 +140,4 @@ impl HTMLTableCellElement {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
use dom::htmltablecellelement::HTMLTableCellElement;
|
||||
|
||||
pub struct HTMLTableDataCellElement {
|
||||
htmlelement: HTMLTableCellElement,
|
||||
htmltablecellelement: HTMLTableCellElement,
|
||||
}
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
use dom::htmltablecellelement::HTMLTableCellElement;
|
||||
|
||||
pub struct HTMLTableHeaderCellElement {
|
||||
htmlelement: HTMLTableCellElement,
|
||||
htmltablecellelement: HTMLTableCellElement,
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use dom::bindings::utils::{DOMString, ErrorResult};
|
|||
use dom::htmlmediaelement::HTMLMediaElement;
|
||||
|
||||
pub struct HTMLVideoElement {
|
||||
htmlelement: HTMLMediaElement
|
||||
htmlmediaelement: HTMLMediaElement
|
||||
}
|
||||
|
||||
impl HTMLVideoElement {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue