Makes setting negative values to maxLength throw an IndexSize exception

This commit is contained in:
Sam Gibson 2015-12-02 13:35:05 +11:00
parent 51ca659f8a
commit 9668500e97
7 changed files with 75 additions and 15 deletions

View file

@ -26,6 +26,26 @@ macro_rules! make_bool_getter(
);
);
#[macro_export]
macro_rules! make_limited_int_setter(
($attr:ident, $htmlname:tt, $default:expr) => (
fn $attr(&self, value: i32) -> $crate::dom::bindings::error::ErrorResult {
use dom::bindings::inheritance::Castable;
use dom::element::Element;
let value = if value < 0 {
return Err($crate::dom::bindings::error::Error::IndexSize);
} else {
value
};
let element = self.upcast::<Element>();
element.set_int_attribute(&atom!($htmlname), value);
Ok(())
}
);
);
#[macro_export]
macro_rules! make_int_getter(
($attr:ident, $htmlname:tt, $default:expr) => (