Commit e3df9807 authored by bashi@chromium.org's avatar bashi@chromium.org

IDL: Add IdlTypeBase.is_traceable

This is a follow-up CL of https://codereview.chromium.org/689013002

v8_union.py and v8_dictionary.py create a same flag from
the same condition. This should be a property of IdlType.

BUG=240176

Review URL: https://codereview.chromium.org/700603003

git-svn-id: svn://svn.chromium.org/blink/trunk@184814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 85013a17
...@@ -141,8 +141,7 @@ def member_impl_context(member, interfaces_info, header_includes): ...@@ -141,8 +141,7 @@ def member_impl_context(member, interfaces_info, header_includes):
'has_method_expression': has_method_expression(), 'has_method_expression': has_method_expression(),
'has_method_name': has_method_name_for_dictionary_member(member), 'has_method_name': has_method_name_for_dictionary_member(member),
'is_object': is_object, 'is_object': is_object,
'is_traceable': (idl_type.is_garbage_collected or 'is_traceable': idl_type.is_traceable,
idl_type.is_will_be_garbage_collected),
'member_cpp_type': member_cpp_type(), 'member_cpp_type': member_cpp_type(),
'rvalue_cpp_type': idl_type.cpp_type_args(used_as_rvalue_type=True), 'rvalue_cpp_type': idl_type.cpp_type_args(used_as_rvalue_type=True),
'setter_name': setter_name_for_dictionary_member(member), 'setter_name': setter_name_for_dictionary_member(member),
......
...@@ -314,6 +314,13 @@ def gc_type(idl_type): ...@@ -314,6 +314,13 @@ def gc_type(idl_type):
IdlTypeBase.gc_type = property(gc_type) IdlTypeBase.gc_type = property(gc_type)
def is_traceable(idl_type):
return (idl_type.is_garbage_collected
or idl_type.is_will_be_garbage_collected)
IdlTypeBase.is_traceable = property(is_traceable)
################################################################################ ################################################################################
# Includes # Includes
################################################################################ ################################################################################
......
...@@ -84,8 +84,7 @@ def member_context(member, interfaces_info): ...@@ -84,8 +84,7 @@ def member_context(member, interfaces_info):
'cpp_value_to_v8_value': member.cpp_value_to_v8_value( 'cpp_value_to_v8_value': member.cpp_value_to_v8_value(
cpp_value='impl.getAs%s()' % member.name, isolate='isolate', cpp_value='impl.getAs%s()' % member.name, isolate='isolate',
creation_context='creationContext'), creation_context='creationContext'),
'is_traceable': (member.is_garbage_collected or 'is_traceable': member.is_traceable,
member.is_will_be_garbage_collected),
'rvalue_cpp_type': member.cpp_type_args(used_as_rvalue_type=True), 'rvalue_cpp_type': member.cpp_type_args(used_as_rvalue_type=True),
'specific_type_enum': 'SpecificType' + member.name, 'specific_type_enum': 'SpecificType' + member.name,
'type_name': member.name, 'type_name': member.name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment