| Index: third_party/WebKit/Source/bindings/scripts/idl_definitions.py
|
| diff --git a/third_party/WebKit/Source/bindings/scripts/idl_definitions.py b/third_party/WebKit/Source/bindings/scripts/idl_definitions.py
|
| index 16a8290937fe417cfb87a99c409a7a8c461a5330..d42069e3196df343b2e3ff6d5d757d8d2e59a417 100644
|
| --- a/third_party/WebKit/Source/bindings/scripts/idl_definitions.py
|
| +++ b/third_party/WebKit/Source/bindings/scripts/idl_definitions.py
|
| @@ -64,7 +64,7 @@ Design doc: http://www.chromium.org/developers/design-documents/idl-compiler
|
|
|
| import abc
|
|
|
| -from idl_types import IdlType, IdlUnionType, IdlArrayType, IdlSequenceType, IdlNullableType
|
| +from idl_types import IdlType, IdlUnionType, IdlArrayType, IdlSequenceType, IdlFrozenArrayType, IdlNullableType
|
|
|
| SPECIAL_KEYWORD_LIST = ['GETTER', 'SETTER', 'DELETER']
|
|
|
| @@ -1019,7 +1019,7 @@ def type_node_inner_to_type(node):
|
| return IdlType(node.GetName(), is_unrestricted=is_unrestricted)
|
| elif node_class == 'Any':
|
| return IdlType('any')
|
| - elif node_class == 'Sequence':
|
| + elif node_class in ['Sequence', 'FrozenArray']:
|
| return sequence_node_to_type(node)
|
| elif node_class == 'UnionType':
|
| return union_type_node_to_idl_union_type(node)
|
| @@ -1030,14 +1030,20 @@ def type_node_inner_to_type(node):
|
|
|
| def sequence_node_to_type(node):
|
| children = node.GetChildren()
|
| + class_name = node.GetClass()
|
| if len(children) != 1:
|
| - raise ValueError('Sequence node expects exactly 1 child, got %s' % len(children))
|
| + raise ValueError('%s node expects exactly 1 child, got %s' % (class_name, len(children)))
|
| sequence_child = children[0]
|
| sequence_child_class = sequence_child.GetClass()
|
| if sequence_child_class != 'Type':
|
| raise ValueError('Unrecognized node class: %s' % sequence_child_class)
|
| element_type = type_node_to_type(sequence_child)
|
| - sequence_type = IdlSequenceType(element_type)
|
| + if class_name == 'Sequence':
|
| + sequence_type = IdlSequenceType(element_type)
|
| + elif class_name == 'FrozenArray':
|
| + sequence_type = IdlFrozenArrayType(element_type)
|
| + else:
|
| + raise ValueError('Unexpected node: %s' % class_name)
|
| if node.GetProperty('NULLABLE'):
|
| return IdlNullableType(sequence_type)
|
| return sequence_type
|
|
|