aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-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(),