diff options
Diffstat (limited to 'src/components/script/dom/bindings/conversions.rs')
-rw-r--r-- | src/components/script/dom/bindings/conversions.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/components/script/dom/bindings/conversions.rs b/src/components/script/dom/bindings/conversions.rs index 0092ea66bff..14c9f3b5949 100644 --- a/src/components/script/dom/bindings/conversions.rs +++ b/src/components/script/dom/bindings/conversions.rs @@ -4,7 +4,7 @@ use js::jsapi::JSVal; use js::{JSVAL_FALSE, JSVAL_TRUE}; -use js::glue::{RUST_UINT_TO_JSVAL, RUST_JSVAL_TO_INT}; +use js::glue::{RUST_UINT_TO_JSVAL, RUST_JSVAL_TO_INT, RUST_DOUBLE_TO_JSVAL, RUST_JSVAL_TO_DOUBLE}; pub trait JSValConvertible { fn to_jsval(&self) -> JSVal; @@ -71,4 +71,18 @@ impl JSValConvertible for bool { None } } +} + +impl JSValConvertible for f32 { + fn to_jsval(&self) -> JSVal { + unsafe { + RUST_DOUBLE_TO_JSVAL(*self as f64) + } + } + + fn from_jsval(val: JSVal) -> Option<f32> { + unsafe { + Some(RUST_JSVAL_TO_DOUBLE(val) as f32) + } + } }
\ No newline at end of file |