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.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 9032012dea7..a4a74cff753 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5627,13 +5627,16 @@ class CGInterfaceTrait(CGThing):
def __init__(self, descriptor):
CGThing.__init__(self)
- def attribute_arguments(needCx, argument=None):
+ def attribute_arguments(needCx, argument=None, inCompartment=False):
if needCx:
yield "cx", "*mut JSContext"
if argument:
yield "value", argument_type(descriptor, argument)
+ if inCompartment:
+ yield "_comp", "InCompartment"
+
def members():
for m in descriptor.interface.members:
if (m.isMethod() and not m.isStatic() and
@@ -5649,7 +5652,7 @@ class CGInterfaceTrait(CGThing):
name = CGSpecializedGetter.makeNativeName(descriptor, m)
infallible = 'infallible' in descriptor.getExtendedAttributes(m, getter=True)
yield (name,
- attribute_arguments(typeNeedsCx(m.type, True)),
+ attribute_arguments(typeNeedsCx(m.type, True), inCompartment=name in descriptor.inCompartmentMethods),
return_type(descriptor, m.type, infallible))
if not m.readonly:
@@ -5659,7 +5662,7 @@ class CGInterfaceTrait(CGThing):
rettype = "()"
else:
rettype = "ErrorResult"
- yield name, attribute_arguments(typeNeedsCx(m.type, False), m.type), rettype
+ yield name, attribute_arguments(typeNeedsCx(m.type, False), m.type, inCompartment=name in descriptor.inCompartmentMethods), rettype
if descriptor.proxy:
for name, operation in descriptor.operations.iteritems():