diff options
Diffstat (limited to 'components/script/dom/bindings/js.rs')
-rw-r--r-- | components/script/dom/bindings/js.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index aea80d88431..1ef1d93a86d 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -96,6 +96,16 @@ impl<T: Reflectable> JS<T> { } } +impl<T: Reflectable> Deref for JS<T> { + type Target = T; + + fn deref(&self) -> &T { + // We can only have &JS<T> from a rooted thing, so it's safe to deref + // it to &T. + unsafe { &**self.ptr } + } +} + impl<T: Reflectable> JSTraceable for JS<T> { fn trace(&self, trc: *mut JSTracer) { trace_reflector(trc, "", unsafe { (**self.ptr).reflector() }); |