Index: Source/bindings/scripts/v8_interface.py |
diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py |
index 09442160ea0526455b60536fbef654d390633477..0e25827cd41c66df462a62ffc34fd2557af9e938 100644 |
--- a/Source/bindings/scripts/v8_interface.py |
+++ b/Source/bindings/scripts/v8_interface.py |
@@ -83,11 +83,17 @@ def generate_interface(interface): |
'bindings/v8/V8WindowShell.h', |
'core/frame/LocalFrame.h']) |
+ # [ActiveDOMObject] |
+ is_active_dom_object = 'ActiveDOMObject' in extended_attributes |
+ |
# [CheckSecurity] |
is_check_security = 'CheckSecurity' in extended_attributes |
if is_check_security: |
includes.add('bindings/v8/BindingSecurity.h') |
+ # [DependentLifetime] |
+ is_dependent_lifetime = 'DependentLifetime' in extended_attributes |
+ |
# [MeasureAs] |
is_measure_as = 'MeasureAs' in extended_attributes |
if is_measure_as: |
@@ -124,23 +130,25 @@ def generate_interface(interface): |
# [WillBeGarbageCollected] |
is_will_be_garbage_collected = 'WillBeGarbageCollected' in extended_attributes |
+ # [Custom=Wrap], [SetWrapperReferenceFrom] |
+ has_visit_dom_wrapper = ( |
+ has_extended_attribute_value(interface, 'Custom', 'VisitDOMWrapper') or |
+ reachable_node_function or |
+ set_wrapper_reference_to_list) |
+ |
template_contents = { |
'conditional_string': conditional_string(interface), # [Conditional] |
'cpp_class': cpp_name(interface), |
'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] |
'has_custom_wrap': has_extended_attribute_value(interface, 'Custom', 'Wrap'), # [Custom=Wrap] |
- 'has_visit_dom_wrapper': ( |
- # [Custom=Wrap], [SetWrapperReferenceFrom] |
- has_extended_attribute_value(interface, 'Custom', 'VisitDOMWrapper') or |
- reachable_node_function or |
- set_wrapper_reference_to_list), |
+ 'has_visit_dom_wrapper': has_visit_dom_wrapper, |
'header_includes': header_includes, |
'interface_name': interface.name, |
- 'is_active_dom_object': 'ActiveDOMObject' in extended_attributes, # [ActiveDOMObject] |
+ 'is_active_dom_object': is_active_dom_object, |
'is_audio_buffer': is_audio_buffer, |
'is_check_security': is_check_security, |
- 'is_dependent_lifetime': 'DependentLifetime' in extended_attributes, # [DependentLifetime] |
+ 'is_dependent_lifetime': is_dependent_lifetime, |
'is_document': is_document, |
'is_event_target': inherits_interface(interface.name, 'EventTarget'), |
'is_exception': interface.is_exception, |
@@ -157,6 +165,11 @@ def generate_interface(interface): |
'set_wrapper_reference_to_list': set_wrapper_reference_to_list, |
'special_wrap_for': special_wrap_for, |
'v8_class': v8_utilities.v8_class_name(interface), |
+ 'wrapper_configuration': 'WrapperConfiguration::Dependent' |
+ if (has_visit_dom_wrapper or |
+ is_active_dom_object or |
+ is_dependent_lifetime) |
+ else 'WrapperConfiguration::Independent', |
} |
# Constructors |