aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/js.rs
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-06-01 16:19:20 -0400
committerbors-servo <release+servo@mozilla.com>2014-06-01 16:19:20 -0400
commit59cef940e899a900b4601dbbc9b4d4bd96a96687 (patch)
tree85f486aa98ee2d65c57ce88c54890a22964d3359 /src/components/script/dom/bindings/js.rs
parent05acf4131713259d54750ea751f1619e5813ff29 (diff)
parent3819ebb7407af87052bdf04e26c887c6417dfef8 (diff)
downloadservo-59cef940e899a900b4601dbbc9b4d4bd96a96687.tar.gz
servo-59cef940e899a900b4601dbbc9b4d4bd96a96687.zip
auto merge of #2535 : saneyuki/servo/mut, r=jdm
Related #2514
Diffstat (limited to 'src/components/script/dom/bindings/js.rs')
-rw-r--r--src/components/script/dom/bindings/js.rs14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/components/script/dom/bindings/js.rs b/src/components/script/dom/bindings/js.rs
index c5d39959c8a..805adcf1ff3 100644
--- a/src/components/script/dom/bindings/js.rs
+++ b/src/components/script/dom/bindings/js.rs
@@ -260,20 +260,12 @@ impl<T: Reflectable> Assignable<T> for Temporary<T> {
/// Assign an optional rootable value (either of JS<T> or Temporary<T>) to an optional
/// field of a DOM type (ie. Option<JS<T>>)
pub trait OptionalSettable<T> {
- fn assign(&mut self, val: Option<T>);
-}
-
-impl<T: Assignable<U>, U: Reflectable> OptionalSettable<T> for Option<JS<U>> {
- fn assign(&mut self, val: Option<T>) {
- *self = val.map(|val| unsafe { val.get_js() });
- }
+ fn assign(&self, val: Option<T>);
}
impl<T: Assignable<U>, U: Reflectable> OptionalSettable<T> for Cell<Option<JS<U>>> {
- fn assign(&mut self, val: Option<T>) {
- let mut item = self.get();
- item.assign(val);
- self.set(item);
+ fn assign(&self, val: Option<T>) {
+ self.set(val.map(|val| unsafe { val.get_js() }));
}
}