diff options
author | Josh Matthews <josh@joshmatthews.net> | 2017-05-26 13:25:05 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2017-09-25 16:10:58 -0400 |
commit | b169689f32db6d497b04f3a5b173cba4acd33e93 (patch) | |
tree | ec02846b1f99dfac6abc9898ebf873b927bdc598 /components/script/dom/bindings/conversions.rs | |
parent | da65698c5c5934220b82493b3f7bb2ab05a2e512 (diff) | |
download | servo-b169689f32db6d497b04f3a5b173cba4acd33e93.tar.gz servo-b169689f32db6d497b04f3a5b173cba4acd33e93.zip |
Store rootable dictionary members of dictionaries in RootedTraceableBox.
Diffstat (limited to 'components/script/dom/bindings/conversions.rs')
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs index 10accbcc62b..69751f2c263 100644 --- a/components/script/dom/bindings/conversions.rs +++ b/components/script/dom/bindings/conversions.rs @@ -116,19 +116,11 @@ impl <T: DomObject + IDLInterface> FromJSValConvertible for Root<T> { } } -impl <T: FromJSValConvertible + JSTraceable> FromJSValConvertible for RootedTraceableBox<T> { - type Config = T::Config; - - unsafe fn from_jsval(cx: *mut JSContext, - value: HandleValue, - config: Self::Config) - -> Result<ConversionResult<Self>, ()> { - T::from_jsval(cx, value, config).map(|result| { - match result { - ConversionResult::Success(v) => ConversionResult::Success(RootedTraceableBox::new(v)), - ConversionResult::Failure(e) => ConversionResult::Failure(e), - } - }) +impl<T: ToJSValConvertible + JSTraceable> ToJSValConvertible for RootedTraceableBox<T> { + #[inline] + unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue) { + let value = &**self; + value.to_jsval(cx, rval); } } |