From c29fcb80f3051ed9f315d736179d95282e57729c Mon Sep 17 00:00:00 2001 From: Igor Matuszewski Date: Tue, 13 Mar 2018 13:23:01 +0100 Subject: Use helper `is_typed_array` function --- components/script/dom/bindings/codegen/CodegenRust.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'components/script/dom/bindings/codegen/CodegenRust.py') diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 6ab7dd8b1d3..1207b050797 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -870,7 +870,7 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None, return handleOptional(templateBody, declType, handleDefaultNull("None")) - if type.isTypedArray() or type.isArrayBuffer() or type.isArrayBufferView() or type.isSharedArrayBuffer(): + if is_typed_array(type): if failureCode is None: substitutions = { "sourceDescription": sourceDescription, @@ -4182,7 +4182,7 @@ def getUnionTypeTemplateVars(type, descriptorProvider): elif type.isObject(): name = type.name typeName = "Heap<*mut JSObject>" - elif type.isTypedArray() or type.isArrayBuffer() or type.isArrayBufferView() or type.isSharedArrayBuffer(): + elif is_typed_array(type): name = type.name typeName = "typedarray::Heap" + name else: @@ -6468,7 +6468,7 @@ def type_needs_tracing(t): if t.isUnion(): return any(type_needs_tracing(member) for member in t.flatMemberTypes) - if t.isTypedArray() or t.isArrayBuffer() or t.isArrayBufferView() or t.isSharedArrayBuffer(): + if is_typed_array(t): return True return False @@ -6491,6 +6491,12 @@ def type_needs_tracing(t): assert False, (t, type(t)) +def is_typed_array(t): + assert isinstance(t, IDLObject), (t, type(t)) + + return t.isTypedArray() or t.isArrayBuffer() or t.isArrayBufferView() or t.isSharedArrayBuffer() + + def type_needs_auto_root(t): """ Certain IDL types, such as `sequence` or `sequence` need to be @@ -6501,8 +6507,8 @@ def type_needs_auto_root(t): if t.isType(): if t.isSequence() and (t.inner.isAny() or t.inner.isObject()): return True - # SpiderMonkey interfaces - if t.isTypedArray() or t.isArrayBuffer() or t.isArrayBufferView() or t.isSharedArrayBuffer(): + # SpiderMonkey interfaces, we currently don't support any other except typed arrays + if is_typed_array(t): return True return False -- cgit v1.2.3