aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-03-20 10:58:36 -0400
committerbors-servo <release+servo@mozilla.com>2014-03-20 10:58:36 -0400
commit831712206865e2c0516009b16e2ac60f754dd1a8 (patch)
treecd83699b72467929a42f98c75158104a4f860136 /src/components/script/dom/bindings/codegen
parent2fb8c84baceee09c2127898cd7f9d3a8e0011cce (diff)
parent0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d (diff)
downloadservo-831712206865e2c0516009b16e2ac60f754dd1a8.tar.gz
servo-831712206865e2c0516009b16e2ac60f754dd1a8.zip
auto merge of #1864 : saneyuki/servo/split_cast_to, r=jdm
fix #1836
Diffstat (limited to 'src/components/script/dom/bindings/codegen')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 0ba3de7e4cf..ff6c37fd78b 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5793,9 +5793,16 @@ class GlobalGenRoots():
unsafe { derived.clone().transmute() }
}
- fn to<T: ${toBound}>(base: &JS<T>) -> JS<Self> {
+ fn to<T: ${toBound}>(base: &JS<T>) -> Option<JS<Self>> {
+ match base.get().${checkFn}() {
+ true => unsafe { Some(base.clone().transmute()) },
+ false => None
+ }
+ }
+
+ unsafe fn to_unchecked<T: ${toBound}>(base: &JS<T>) -> JS<Self> {
assert!(base.get().${checkFn}());
- unsafe { base.clone().transmute() }
+ base.clone().transmute()
}
}
''').substitute({'checkFn': 'is_' + name.lower(),