aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorIgor Matuszewski <Xanewok@gmail.com>2018-03-13 13:23:01 +0100
committerIgor Matuszewski <Xanewok@gmail.com>2018-03-14 18:43:27 +0100
commitc29fcb80f3051ed9f315d736179d95282e57729c (patch)
treea9bbaeb285a684e019904f1c0fcac544f1b8696b /components/script
parent6beb32e28e8652027a28bc8400dbe2d6e78cb286 (diff)
downloadservo-c29fcb80f3051ed9f315d736179d95282e57729c.tar.gz
servo-c29fcb80f3051ed9f315d736179d95282e57729c.zip
Use helper `is_typed_array` function
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py16
1 files changed, 11 insertions, 5 deletions
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<any>` or `sequence<object>` 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