aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 9247a0c0243..597e5611f74 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -2573,9 +2573,19 @@ class CGAbstractMethod(CGThing):
body = self.definition_body()
if self.catchPanic:
- body = CGWrapper(CGIndenter(body),
- pre="return wrap_panic(panic::AssertUnwindSafe(|| {\n",
- post=("""\n}), %s);""" % ("()" if self.returnType == "void" else "false")))
+ if self.returnType == "void":
+ pre = "wrap_panic(&mut || {\n"
+ post = "\n})"
+ else:
+ pre = (
+ "let mut result = false;\n"
+ "wrap_panic(&mut || result = (|| {\n"
+ )
+ post = (
+ "\n})());\n"
+ "return result"
+ )
+ body = CGWrapper(CGIndenter(body), pre=pre, post=post)
return CGWrapper(CGIndenter(body),
pre=self.definition_prologue(),