diff options
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index db60cd55459..2a04db77cc9 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -700,7 +700,16 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, raise TypeError("Can't handle array arguments yet") if type.isSequence(): - raise TypeError("Can't handle sequence arguments yet") + # Use the same type that for return values + declType = getRetvalDeclarationForType(type, descriptorProvider) + config = getConversionConfigForType(type, isEnforceRange, isClamp, treatNullAs) + + templateBody = ("match FromJSValConvertible::from_jsval(cx, ${val}, %s) {\n" + " Ok(value) => value,\n" + " Err(()) => { %s },\n" + "}" % (config, exceptionCode)) + + return handleOptional(templateBody, declType, handleDefaultNull("None")) if type.isUnion(): declType = CGGeneric(union_native_type(type)) |