Use helper is_typed_array function

This commit is contained in:
Igor Matuszewski 2018-03-13 13:23:01 +01:00
parent 6beb32e28e
commit c29fcb80f3

View file

@ -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