diff options
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r-- | components/script/dom/macros.rs | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index a292737ac47..8029bb85b2f 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -28,21 +28,18 @@ macro_rules! make_bool_getter( #[macro_export] macro_rules! make_int_getter( - ($attr:ident, $htmlname:expr, $default:expr) => ( + ($attr:ident, $htmlname:tt, $default:expr) => ( fn $attr(&self) -> i32 { - use dom::bindings::codegen::InheritTypes::ElementCast; - use string_cache::Atom; - let element = ElementCast::from_ref(self); - // FIXME(pcwalton): Do this at compile time, not runtime. - element.get_int_attribute(&Atom::from_slice($htmlname), $default) + use dom::bindings::inheritance::Castable; + use dom::element::Element; + let element = self.upcast::<Element>(); + element.get_int_attribute(&atom!($htmlname), $default) } ); - ($attr:ident, $htmlname:expr) => { + + ($attr:ident, $htmlname:tt) => { make_int_getter!($attr, $htmlname, 0); }; - ($attr:ident) => { - make_int_getter!($attr, to_lower!(stringify!($attr))); - } ); #[macro_export] |