aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/codegen')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 9f965a9c7e8..ebc5ec4e069 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4166,9 +4166,13 @@ class CGClassTraceHook(CGAbstractClassHook):
args = [Argument('*mut JSTracer', 'trc'), Argument('*mut JSObject', 'obj')]
CGAbstractClassHook.__init__(self, descriptor, TRACE_HOOK_NAME, 'void',
args)
+ self.traceGlobal = descriptor.isGlobal()
def generate_code(self):
- return CGGeneric("(*this).trace(%s);" % self.args[0].name)
+ body = [CGGeneric("(*this).trace(%s);" % self.args[0].name)]
+ if self.traceGlobal:
+ body += [CGGeneric("trace_global(trc, obj);")]
+ return CGList(body, "\n")
class CGClassConstructHook(CGAbstractExternMethod):
"""
@@ -4770,7 +4774,7 @@ class CGBindingRoot(CGThing):
'dom::bindings::utils::{DOMJSClass, JSCLASS_DOM_GLOBAL}',
'dom::bindings::utils::{find_enum_string_index, get_array_index_from_id}',
'dom::bindings::utils::{get_property_on_prototype, get_proto_or_iface_array}',
- 'dom::bindings::utils::finalize_global',
+ 'dom::bindings::utils::{finalize_global, trace_global}',
'dom::bindings::utils::has_property_on_prototype',
'dom::bindings::utils::is_platform_object',
'dom::bindings::utils::{Reflectable}',