Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: Source/bindings/scripts/unstable/v8_interface.py

Issue 114813006: IDL compiler: [SetReference] (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/scripts/unstable/v8_interface.py
diff --git a/Source/bindings/scripts/unstable/v8_interface.py b/Source/bindings/scripts/unstable/v8_interface.py
index fec79658a72b2ce2d56b15fa68bafe7c3f8d4345..7c2c3cee08d14c1ece373c4c3e2b4a44bbca1fb7 100644
--- a/Source/bindings/scripts/unstable/v8_interface.py
+++ b/Source/bindings/scripts/unstable/v8_interface.py
@@ -74,8 +74,8 @@ def generate_interface(interface):
includes.add('bindings/v8/BindingSecurity.h')
# [GenerateVisitDOMWrapper]
- generate_visit_dom_wrapper_function = extended_attributes.get('GenerateVisitDOMWrapper')
- if generate_visit_dom_wrapper_function:
+ check_reachable_method = extended_attributes.get('GenerateVisitDOMWrapper')
+ if check_reachable_method:
includes.update(['bindings/v8/V8GCController.h',
'core/dom/Element.h'])
@@ -84,6 +84,15 @@ def generate_interface(interface):
if is_measure_as:
includes.add('core/frame/UseCounter.h')
+ # [SetReference]
+ set_reference_list = [{
+ 'name': argument.name,
+ 'idl_type': argument.idl_type,
+ 'v8_type': v8_types.v8_type(argument.idl_type),
+ } for argument in extended_attributes.get('SetReference', [])]
+ for set_reference in set_reference_list:
+ v8_types.add_includes_for_type(set_reference['idl_type'])
+
# [SpecialWrapFor]
if 'SpecialWrapFor' in extended_attributes:
special_wrap_for = extended_attributes['SpecialWrapFor'].split('|')
@@ -132,10 +141,10 @@ def generate_interface(interface):
template_contents = {
'any_type_attributes': any_type_attributes,
+ 'check_reachable_method': check_reachable_method,
'conditional_string': conditional_string(interface), # [Conditional]
'constructors': constructors,
'cpp_class': cpp_name(interface),
- 'generate_visit_dom_wrapper_function': generate_visit_dom_wrapper_function,
'has_custom_constructor': bool(custom_constructors),
'has_custom_legacy_call_as_function': has_extended_attribute_value(interface, 'Custom', 'LegacyCallAsFunction'), # [Custom=LegacyCallAsFunction]
'has_custom_to_v8': has_extended_attribute_value(interface, 'Custom', 'ToV8'), # [Custom=ToV8]
@@ -144,7 +153,7 @@ def generate_interface(interface):
'has_visit_dom_wrapper': (
# [Custom=Wrap], [GenerateVisitDOMWrapper]
has_extended_attribute_value(interface, 'Custom', 'VisitDOMWrapper') or
- 'GenerateVisitDOMWrapper' in extended_attributes),
+ check_reachable_method or set_reference_list),
'header_includes': header_includes,
'interface_length':
interface_length(interface, constructors + custom_constructors),
@@ -163,6 +172,7 @@ def generate_interface(interface):
'named_constructor': named_constructor,
'parent_interface': parent_interface,
'runtime_enabled_function': runtime_enabled_function_name(interface), # [RuntimeEnabled]
+ 'set_reference_list': set_reference_list,
'special_wrap_for': special_wrap_for,
'v8_class': v8_utilities.v8_class_name(interface),
}

Powered by Google App Engine
This is Rietveld 408576698