aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/js.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/js.rs')
-rw-r--r--components/script/dom/bindings/js.rs10
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() });