| Index: Source/bindings/scripts/unstable/v8_types.py
|
| diff --git a/Source/bindings/scripts/unstable/v8_types.py b/Source/bindings/scripts/unstable/v8_types.py
|
| index 5066aaa0d0b8906ba60f578f5d62514f7e3bec3f..ecd99d8d8bc7b2eb84e893fa5ee0e945a82f0634 100644
|
| --- a/Source/bindings/scripts/unstable/v8_types.py
|
| +++ b/Source/bindings/scripts/unstable/v8_types.py
|
| @@ -289,6 +289,8 @@ def cpp_type(idl_type, extended_attributes=None, used_as_argument=False):
|
| implemented_as_class = implemented_as(idl_type)
|
| if used_as_argument:
|
| return implemented_as_class + '*'
|
| + if is_garbage_collected(idl_type):
|
| + return cpp_template_type('RefPtrWillBeRawPtr', implemented_as_class)
|
| return cpp_template_type('RefPtr', implemented_as_class)
|
| # Default, assume native type is a pointer with same type name as idl type
|
| return idl_type + '*'
|
| @@ -307,6 +309,18 @@ def v8_type(interface_type):
|
| return 'V8' + interface_type
|
|
|
|
|
| +# [GarbageCollected]
|
| +garbage_collected_types = set()
|
| +
|
| +
|
| +def is_garbage_collected(idl_type):
|
| + return idl_type in garbage_collected_types
|
| +
|
| +
|
| +def set_garbage_collected_types(new_garbage_collected_types):
|
| + garbage_collected_types.update(new_garbage_collected_types)
|
| +
|
| +
|
| # [ImplementedAs]
|
| # This handles [ImplementedAs] on interface types, not [ImplementedAs] in the
|
| # interface being generated. e.g., given:
|
|
|