Chromium Code Reviews| 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, |