Index: third_party/WebKit/Source/bindings/scripts/v8_attributes.py |
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_attributes.py b/third_party/WebKit/Source/bindings/scripts/v8_attributes.py |
index ecc6277fdad954aa8a483b724019efb5c47e2a87..2ab1aecf129b6a9628e4025987ad33caf3a38aec 100644 |
--- a/third_party/WebKit/Source/bindings/scripts/v8_attributes.py |
+++ b/third_party/WebKit/Source/bindings/scripts/v8_attributes.py |
@@ -286,8 +286,13 @@ def getter_context(interface, attribute, context): |
cpp_value, extended_attributes=extended_attributes, script_wrappable='impl', |
for_main_world=for_main_world, is_static=attribute.is_static) |
+ cpp_value_to_script_wrappable = cpp_value |
+ if idl_type.is_array_buffer_view_or_typed_array: |
+ cpp_value_to_script_wrappable += '.View()' |
+ |
context.update({ |
'cpp_value': cpp_value, |
+ 'cpp_value_to_script_wrappable': cpp_value_to_script_wrappable, |
'cpp_value_to_v8_value': idl_type.cpp_value_to_v8_value( |
cpp_value=cpp_value, creation_context='holder', |
extended_attributes=extended_attributes), |
@@ -318,7 +323,8 @@ def getter_expression(interface, attribute, context): |
expression = '%s(%s)' % (getter_name, ', '.join(arguments)) |
# Needed to handle getter expressions returning Type& as the |
# use site for |expression| expects Type*. |
- if attribute.idl_type.is_interface_type and len(arguments) == 0: |
+ if (attribute.idl_type.is_interface_type and len(arguments) == 0 and |
+ not attribute.idl_type.is_array_buffer_view_or_typed_array): |
return 'WTF::GetPtr(%s)' % expression |
return expression |