Index: Source/bindings/scripts/v8_types.py |
diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
index 41899fd3d3db1bb3d7943f45719c81de24a519fb..c39461969682fbd6bb2b3dd86fefe11e4cb35863 100644 |
--- a/Source/bindings/scripts/v8_types.py |
+++ b/Source/bindings/scripts/v8_types.py |
@@ -55,23 +55,28 @@ NON_WRAPPER_TYPES = frozenset([ |
'NodeFilter', |
'SerializedScriptValue', |
]) |
-TYPED_ARRAYS = { |
- # (cpp_type, v8_type), used by constructor templates |
- 'ArrayBuffer': None, |
- 'ArrayBufferView': None, |
- 'Float32Array': ('float', 'v8::kExternalFloatArray'), |
- 'Float64Array': ('double', 'v8::kExternalDoubleArray'), |
- 'Int8Array': ('signed char', 'v8::kExternalByteArray'), |
- 'Int16Array': ('short', 'v8::kExternalShortArray'), |
- 'Int32Array': ('int', 'v8::kExternalIntArray'), |
- 'Uint8Array': ('unsigned char', 'v8::kExternalUnsignedByteArray'), |
- 'Uint8ClampedArray': ('unsigned char', 'v8::kExternalPixelArray'), |
- 'Uint16Array': ('unsigned short', 'v8::kExternalUnsignedShortArray'), |
- 'Uint32Array': ('unsigned int', 'v8::kExternalUnsignedIntArray'), |
-} |
+TYPED_ARRAY_TYPES = frozenset([ |
+ 'Float32Array', |
+ 'Float64Array', |
+ 'Int8Array', |
+ 'Int16Array', |
+ 'Int32Array', |
+ 'Uint8Array', |
+ 'Uint8ClampedArray', |
+ 'Uint16Array', |
+ 'Uint32Array', |
+]) |
+ARRAY_BUFFER_AND_VIEW_TYPES = TYPED_ARRAY_TYPES.union(frozenset([ |
+ 'ArrayBuffer', |
+ 'ArrayBufferView', |
+ 'DataView', |
+])) |
+ |
+IdlType.is_array_buffer_or_view = property( |
+ lambda self: self.base_type in ARRAY_BUFFER_AND_VIEW_TYPES) |
-IdlType.is_typed_array_element_type = property( |
- lambda self: self.base_type in TYPED_ARRAYS) |
+IdlType.is_typed_array = property( |
+ lambda self: self.base_type in TYPED_ARRAY_TYPES) |
IdlType.is_wrapper_type = property( |
lambda self: (self.is_interface_type and |
@@ -176,8 +181,8 @@ def cpp_type(idl_type, extended_attributes=None, raw_type=False, used_as_rvalue_ |
return 'String' |
return 'V8StringResource<%s>' % string_mode() |
- if idl_type.is_typed_array_element_type and raw_type: |
- return base_idl_type + '*' |
+ if idl_type.is_array_buffer_or_view and raw_type: |
+ return idl_type.implemented_as + '*' |
if idl_type.is_interface_type: |
implemented_as_class = idl_type.implemented_as |
if raw_type: |
@@ -361,8 +366,6 @@ def includes_for_type(idl_type): |
return INCLUDES_FOR_TYPE[base_idl_type] |
if idl_type.is_basic_type: |
return set() |
- if idl_type.is_typed_array_element_type: |
- return set(['bindings/core/v8/custom/V8%sCustom.h' % base_idl_type]) |
if base_idl_type.endswith('ConstructorConstructor'): |
# FIXME: rename to NamedConstructor |
# FIXME: replace with a [NamedConstructorAttribute] extended attribute |
@@ -528,7 +531,7 @@ def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, variable_name |
if base_idl_type in V8_VALUE_TO_CPP_VALUE: |
cpp_expression_format = V8_VALUE_TO_CPP_VALUE[base_idl_type] |
- elif idl_type.is_typed_array_element_type: |
+ elif idl_type.is_array_buffer_or_view: |
cpp_expression_format = ( |
'{v8_value}->Is{idl_type}() ? ' |
'V8{idl_type}::toImpl(v8::Handle<v8::{idl_type}>::Cast({v8_value})) : 0') |