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.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 31c3af4e6be..0aad0a2547b 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -4800,7 +4800,7 @@ class CGDictionary(CGThing):
def getMemberType(self, memberInfo):
member, info = memberInfo
declType = info.declType
- if not member.defaultValue:
+ if member.optional and not member.defaultValue:
declType = CGWrapper(info.declType, pre="Option<", post=">")
return declType.define()
@@ -4817,7 +4817,11 @@ class CGDictionary(CGThing):
conversion = "%s.get()" % conversion
assert (member.defaultValue is None) == (default is None)
- if not default:
+ if not member.optional:
+ assert default is None
+ default = ("throw_type_error(cx, \"Missing required member \\\"%s\\\".\");\n"
+ "return Err(());") % member.identifier.name
+ elif not default:
default = "None"
conversion = "Some(%s)" % conversion