Index: third_party/WebKit/Source/bindings/scripts/v8_dictionary.py |
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py |
index 4bdb8fd2a51f1bf1f0c95617fa749c0b59bcb804..92bfe78a8d30b6f24f23035b9be5db3332e06451 100644 |
--- a/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py |
+++ b/third_party/WebKit/Source/bindings/scripts/v8_dictionary.py |
@@ -161,11 +161,14 @@ def dictionary_impl_context(dictionary, interfaces_info): |
return sorted(members_dict.values(), key=lambda member: member['cpp_name']) |
includes.clear() |
+ header_forward_decls = set() |
peria
2016/11/11 03:06:38
I think we rarely use forward declarations in .cpp
|
header_includes = set(['platform/heap/Handle.h']) |
- members = [member_impl_context(member, interfaces_info, header_includes) |
+ members = [member_impl_context(member, interfaces_info, |
+ header_includes, header_forward_decls) |
for member in dictionary.members] |
members = remove_duplicate_members(members) |
context = { |
+ 'header_forward_decls': header_forward_decls, |
peria
2016/11/11 03:06:38
ditto. for the key.
|
'header_includes': header_includes, |
'cpp_class': v8_utilities.cpp_name(dictionary), |
'members': members, |
@@ -184,7 +187,8 @@ def dictionary_impl_context(dictionary, interfaces_info): |
return context |
-def member_impl_context(member, interfaces_info, header_includes): |
+def member_impl_context(member, interfaces_info, header_includes, |
+ header_forward_decls): |
idl_type = unwrap_nullable_if_needed(member.idl_type) |
cpp_name = v8_utilities.cpp_name(member) |
@@ -213,7 +217,13 @@ def member_impl_context(member, interfaces_info, header_includes): |
if member.default_value and not member.default_value.is_null: |
cpp_default_value = idl_type.literal_cpp_value(member.default_value) |
- header_includes.update(idl_type.impl_includes_for_type(interfaces_info)) |
+ forward_decl_name = idl_type.impl_forward_declaration_name |
+ if forward_decl_name: |
+ includes.update(idl_type.impl_includes_for_type(interfaces_info)) |
+ header_forward_decls.add(forward_decl_name) |
+ else: |
+ header_includes.update(idl_type.impl_includes_for_type(interfaces_info)) |
+ |
return { |
'cpp_default_value': cpp_default_value, |
'cpp_name': cpp_name, |