Index: Source/bindings/scripts/v8_types.py |
diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
index 2a3e5bc8b2612d2a9adf7b748d38aa2d80051945..90cf991416ddceae262864238f3a63404b031f60 100644 |
--- a/Source/bindings/scripts/v8_types.py |
+++ b/Source/bindings/scripts/v8_types.py |
@@ -366,8 +366,9 @@ INCLUDES_FOR_TYPE = { |
} |
-def includes_for_type(idl_type): |
+def includes_for_type(idl_type, extended_attributes=None): |
idl_type = idl_type.preprocessed_type |
+ extended_attributes = extended_attributes or {} |
# Simple types |
base_idl_type = idl_type.base_type |
@@ -390,22 +391,30 @@ def includes_for_type(idl_type): |
return set(['bindings/%s/v8/V8%s.h' % (component_dir[base_idl_type], |
base_idl_type)]) |
-IdlType.includes_for_type = property(includes_for_type) |
-IdlUnionType.includes_for_type = property( |
- lambda self: set.union(*[member_type.includes_for_type |
- for member_type in self.member_types])) |
-IdlArrayOrSequenceType.includes_for_type = property( |
- lambda self: self.element_type.includes_for_type) |
+IdlType.includes_for_type = includes_for_type |
+ |
+ |
+def includes_for_union_type(idl_type, extended_attributes=None): |
+ return set.union(*[member_type.includes_for_type(extended_attributes) |
+ for member_type in idl_type.member_types]) |
+ |
+IdlUnionType.includes_for_type = includes_for_union_type |
+ |
+ |
+def includes_for_array_or_sequence_type(idl_type, extended_attributes=None): |
+ return idl_type.element_type.includes_for_type(extended_attributes) |
+ |
+IdlArrayOrSequenceType.includes_for_type = includes_for_array_or_sequence_type |
-def add_includes_for_type(idl_type): |
- includes.update(idl_type.includes_for_type) |
+def add_includes_for_type(idl_type, extended_attributes=None): |
+ includes.update(idl_type.includes_for_type(extended_attributes)) |
IdlTypeBase.add_includes_for_type = add_includes_for_type |
def includes_for_interface(interface_name): |
- return IdlType(interface_name).includes_for_type |
+ return IdlType(interface_name).includes_for_type() |
def add_includes_for_interface(interface_name): |
@@ -539,7 +548,6 @@ def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, variable_name |
# Simple types |
idl_type = idl_type.preprocessed_type |
- add_includes_for_type(idl_type) |
base_idl_type = idl_type.as_union_type.name if idl_type.is_union_type else idl_type.base_type |
if idl_type.is_integer_type: |
@@ -582,7 +590,6 @@ def v8_value_to_cpp_value_array_or_sequence(native_array_element_type, v8_value, |
this_cpp_type = None |
ref_ptr_type = cpp_ptr_type('RefPtr', 'Member', native_array_element_type.gc_type) |
expression_format = '(to{ref_ptr_type}NativeArray<{native_array_element_type}, V8{native_array_element_type}>({v8_value}, {index}, {isolate}, exceptionState))' |
- add_includes_for_type(native_array_element_type) |
else: |
ref_ptr_type = None |
this_cpp_type = native_array_element_type.cpp_type |
@@ -729,8 +736,6 @@ def v8_conversion_type(idl_type, extended_attributes): |
# Array or sequence types |
native_array_element_type = idl_type.native_array_element_type |
if native_array_element_type: |
- if native_array_element_type.is_interface_type: |
- add_includes_for_type(native_array_element_type) |
return 'array' |
# Simple types |
@@ -758,7 +763,6 @@ def v8_conversion_type(idl_type, extended_attributes): |
return 'Dictionary' |
# Data type with potential additional includes |
- add_includes_for_type(idl_type) |
if base_idl_type in V8_SET_RETURN_VALUE: # Special v8SetReturnValue treatment |
return base_idl_type |