Index: Source/bindings/templates/attributes.cpp |
diff --git a/Source/bindings/templates/attributes.cpp b/Source/bindings/templates/attributes.cpp |
index fe878657359c545c05eeb099927b73ec9e9a9423..4e5ce10aae563b69d3650b0f0e41837ed64ca305 100644 |
--- a/Source/bindings/templates/attributes.cpp |
+++ b/Source/bindings/templates/attributes.cpp |
@@ -198,11 +198,7 @@ v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& info |
{% if attribute.measure_as %} |
UseCounter::countIfNotPrivateScript(info.GetIsolate(), callingExecutionContext(info.GetIsolate()), UseCounter::{{attribute.measure_as('ConstructorGetter')}}); |
{% endif %} |
- {% if attribute.is_expose_js_accessors %} |
- v8ConstructorAttributeGetterAsAccessor(info); |
- {% else %} |
- v8ConstructorAttributeGetterAsProperty(property, info); |
- {% endif %} |
+ v8ConstructorAttributeGetter(property, info); |
TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); |
} |
{% endfilter %} |
@@ -405,27 +401,27 @@ bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame* |
{##############################################################################} |
{% macro attribute_configuration(attribute) %} |
+{% if attribute.constructor_type %} |
{% set getter_callback = |
- '%sV8Internal::%sAttributeGetterCallback' % |
- (cpp_class_or_partial, attribute.name) |
- if not attribute.constructor_type else ( |
- '%sV8Internal::%sConstructorGetterCallback' % |
- (cpp_class_or_partial, attribute.name) |
- if attribute.needs_constructor_getter_callback else ( |
- 'v8ConstructorAttributeGetterAsAccessor' |
- if attribute.is_expose_js_accessors else ( |
- 'v8ConstructorAttributeGetterAsProperty'))) %} |
-{% set getter_callback_for_main_world = |
- '%sV8Internal::%sAttributeGetterCallbackForMainWorld' % |
- (cpp_class_or_partial, attribute.name) |
- if attribute.is_per_world_bindings else '0' %} |
+ '%sV8Internal::%sConstructorGetterCallback' % (cpp_class_or_partial, attribute.name) |
+ if attribute.needs_constructor_getter_callback else |
+ 'v8ConstructorAttributeGetter' %} |
{% set setter_callback = |
- '%sV8Internal::%sAttributeSetterCallback' % |
+ '%sV8Internal::%sAttributeSetterCallback' % (cpp_class_or_partial, attribute.name) |
+ if attribute.needs_constructor_setter_callback else |
+ '%sV8Internal::%sConstructorAttributeSetterCallback' % (cpp_class_or_partial, cpp_class) %} |
+{% else %}{# regular attributes #} |
+{% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' % |
+ (cpp_class_or_partial, attribute.name) %} |
+{% set setter_callback = '%sV8Internal::%sAttributeSetterCallback' % |
(cpp_class_or_partial, attribute.name) |
if attribute.has_setter else '0' %} |
+{% endif %} |
+{% set getter_callback_for_main_world = |
+ '%sForMainWorld' % getter_callback |
+ if attribute.is_per_world_bindings else '0' %} |
{% set setter_callback_for_main_world = |
- '%sV8Internal::%sAttributeSetterCallbackForMainWorld' % |
- (cpp_class_or_partial, attribute.name) |
+ '%sForMainWorld' % setter_callback |
if attribute.is_per_world_bindings and attribute.has_setter else '0' %} |
{% set wrapper_type_info = |
'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % |
@@ -435,7 +431,10 @@ bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame* |
' | '.join(attribute.access_control_list) %} |
{% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % |
' | '.join(attribute.property_attributes) %} |
-{% set only_exposed_to_private_script = 'V8DOMConfiguration::OnlyExposedToPrivateScript' if attribute.only_exposed_to_private_script else 'V8DOMConfiguration::ExposedToAllScripts' %} |
+{% set only_exposed_to_private_script = |
+ 'V8DOMConfiguration::OnlyExposedToPrivateScript' |
+ if attribute.only_exposed_to_private_script else |
+ 'V8DOMConfiguration::ExposedToAllScripts' %} |
{% set on_prototype = 'V8DOMConfiguration::OnPrototype' |
if interface_name == 'Window' and attribute.idl_type == 'EventHandler' |
else 'V8DOMConfiguration::OnInstance' %} |