Index: Source/bindings/scripts/v8_attributes.py |
diff --git a/Source/bindings/scripts/v8_attributes.py b/Source/bindings/scripts/v8_attributes.py |
index ffa2a435b7f4a49c4d5181013c7941d05d238fdb..0b85ff8c7cd4b79f35b7f6f970c9e7fcd682ebe4 100644 |
--- a/Source/bindings/scripts/v8_attributes.py |
+++ b/Source/bindings/scripts/v8_attributes.py |
@@ -191,9 +191,11 @@ def getter_context(interface, attribute, context): |
release = idl_type.release |
def v8_set_return_value_statement(for_main_world=False): |
- if context['is_keep_alive_for_gc']: |
- return 'v8SetReturnValue(info, wrapper)' |
- return idl_type.v8_set_return_value(cpp_value, extended_attributes=extended_attributes, script_wrappable='impl', release=release, for_main_world=for_main_world) |
+ if context['is_keep_alive_for_gc'] or 'CachedAttribute' in extended_attributes: |
+ return 'v8SetReturnValue(info, v8Value)' |
+ return idl_type.v8_set_return_value( |
+ cpp_value, extended_attributes=extended_attributes, script_wrappable='impl', |
+ release=release, for_main_world=for_main_world) |
context.update({ |
'cpp_value': cpp_value, |
@@ -204,7 +206,6 @@ def getter_context(interface, attribute, context): |
'v8_set_return_value': v8_set_return_value_statement(), |
}) |
- |
def getter_expression(interface, attribute, context): |
arguments = [] |
this_getter_base_name = getter_base_name(interface, attribute, arguments) |