| OLD | NEW |
| 1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t
o_local_cpp_value %} | 1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t
o_local_cpp_value %} |
| 2 | 2 |
| 3 {##############################################################################} | 3 {##############################################################################} |
| 4 {% macro attribute_getter(attribute, world_suffix) %} | 4 {% macro attribute_getter(attribute, world_suffix) %} |
| 5 static void {{attribute.name}}AttributeGetter{{world_suffix}}( | 5 static void {{attribute.name}}AttributeGetter{{world_suffix}}( |
| 6 {%- if attribute.is_data_type_property %} | 6 {%- if attribute.is_data_type_property %} |
| 7 const v8::PropertyCallbackInfo<v8::Value>& info | 7 const v8::PropertyCallbackInfo<v8::Value>& info |
| 8 {%- else %} | 8 {%- else %} |
| 9 const v8::FunctionCallbackInfo<v8::Value>& info | 9 const v8::FunctionCallbackInfo<v8::Value>& info |
| 10 {%- endif %}) { | 10 {%- endif %}) { |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 if attribute.is_named_constructor else 'v8ConstructorAttributeGetter' %} | 468 if attribute.is_named_constructor else 'v8ConstructorAttributeGetter' %} |
| 469 {% endif %} | 469 {% endif %} |
| 470 {% set setter_callback = 'nullptr' %} | 470 {% set setter_callback = 'nullptr' %} |
| 471 {% else %}{# regular attributes #} | 471 {% else %}{# regular attributes #} |
| 472 {% set getter_callback = '%s::%sAttributeGetterCallback' % | 472 {% set getter_callback = '%s::%sAttributeGetterCallback' % |
| 473 (v8_class_or_partial, attribute.name) %} | 473 (v8_class_or_partial, attribute.name) %} |
| 474 {% set setter_callback = '%s::%sAttributeSetterCallback' % | 474 {% set setter_callback = '%s::%sAttributeSetterCallback' % |
| 475 (v8_class_or_partial, attribute.name) | 475 (v8_class_or_partial, attribute.name) |
| 476 if attribute.has_setter else 'nullptr' %} | 476 if attribute.has_setter else 'nullptr' %} |
| 477 {% endif %} | 477 {% endif %} |
| 478 {% set getter_callback_for_main_world = | |
| 479 '%sForMainWorld' % getter_callback | |
| 480 if attribute.is_per_world_bindings else 'nullptr' %} | |
| 481 {% set setter_callback_for_main_world = | |
| 482 '%sForMainWorld' % setter_callback | |
| 483 if attribute.is_per_world_bindings and attribute.has_setter else 'nullptr
' %} | |
| 484 {% set wrapper_type_info = | 478 {% set wrapper_type_info = |
| 485 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % attribute.constr
uctor_type | 479 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % attribute.constr
uctor_type |
| 486 if attribute.constructor_type else 'nullptr' %} | 480 if attribute.constructor_type else 'nullptr' %} |
| 487 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % | 481 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % |
| 488 ' | '.join(attribute.property_attributes) %} | 482 ' | '.join(attribute.property_attributes) %} |
| 489 {% set cached_accessor_callback = | 483 {% set cached_accessor_callback = |
| 490 '%s::%sCachedAccessorCallback' % (v8_class_or_partial, attribute.name) | 484 '%s::%sCachedAccessorCallback' % (v8_class_or_partial, attribute.name) |
| 491 if attribute.is_cached_accessor else | 485 if attribute.is_cached_accessor else |
| 492 'nullptr' %} | 486 'nullptr' %} |
| 493 {% set holder_check = 'V8DOMConfiguration::DoNotCheckHolder' | 487 {% set holder_check = 'V8DOMConfiguration::DoNotCheckHolder' |
| 494 if attribute.is_lenient_this else 'V8DOMConfiguration::CheckHolder' %} | 488 if attribute.is_lenient_this else 'V8DOMConfiguration::CheckHolder' %} |
| 495 {% set attribute_configuration_list = [ | 489 {% if attribute.is_per_world_bindings %} |
| 496 '"%s"' % attribute.name, | 490 {% set getter_callback_for_main_world = '%sForMainWorld' % getter_callback %} |
| 497 getter_callback, | 491 {% set setter_callback_for_main_world = |
| 498 setter_callback, | 492 '%sForMainWorld' % setter_callback |
| 499 getter_callback_for_main_world, | 493 if attribute.has_setter else 'nullptr' %} |
| 500 setter_callback_for_main_world, | 494 {"{{attribute.name}}", {{getter_callback_for_main_world}}, {{setter_callback_for
_main_world}}, {{cached_accessor_callback}}, {{wrapper_type_info}}, {{property_a
ttribute}}, {{property_location(attribute)}}, {{holder_check}}, V8DOMConfigurati
on::MainWorld}, |
| 501 cached_accessor_callback, | 495 {"{{attribute.name}}", {{getter_callback}}, {{setter_callback}}, {{cached_access
or_callback}}, {{wrapper_type_info}}, {{property_attribute}}, {{property_locatio
n(attribute)}}, {{holder_check}}, V8DOMConfiguration::NonMainWorlds} |
| 502 wrapper_type_info, | 496 {%- else %} |
| 503 property_attribute, | 497 {"{{attribute.name}}", {{getter_callback}}, {{setter_callback}}, {{cached_access
or_callback}}, {{wrapper_type_info}}, {{property_attribute}}, {{property_locatio
n(attribute)}}, {{holder_check}}, V8DOMConfiguration::AllWorlds} |
| 504 property_location(attribute), | 498 {%- endif %} |
| 505 holder_check, | |
| 506 ] %} | |
| 507 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} | |
| 508 {%- endmacro %} | 499 {%- endmacro %} |
| 509 | 500 |
| 510 {##############################################################################} | 501 {##############################################################################} |
| 511 {% macro install_conditionally_enabled_attributes_on_prototype() %} | 502 {% macro install_conditionally_enabled_attributes_on_prototype() %} |
| 512 {% for attribute in attributes if (attribute.exposed_test or attribute.secure_co
ntext_test) and attribute.on_prototype %} | 503 {% for attribute in attributes if (attribute.exposed_test or attribute.secure_co
ntext_test) and attribute.on_prototype %} |
| 513 {% filter exposed(attribute.exposed_test) %} | 504 {% filter exposed(attribute.exposed_test) %} |
| 514 {% filter secure_context(attribute.secure_context_test) %} | 505 {% filter secure_context(attribute.secure_context_test) %} |
| 515 {% filter runtime_enabled(attribute.runtime_enabled_feature_name) %} | 506 {% filter runtime_enabled(attribute.runtime_enabled_feature_name) %} |
| 516 const V8DOMConfiguration::AccessorConfiguration accessorConfiguration = {{attrib
ute_configuration(attribute)}}; | 507 static const V8DOMConfiguration::AccessorConfiguration accessorConfiguration[] =
{ |
| 517 V8DOMConfiguration::installAccessor(isolate, world, v8::Local<v8::Object>(), pro
totypeObject, interfaceObject, signature, accessorConfiguration); | 508 {{attribute_configuration(attribute)}} |
| 509 }; |
| 510 for (const auto& accessorConfig : accessorConfiguration) |
| 511 V8DOMConfiguration::installAccessor(isolate, world, v8::Local<v8::Object>(), p
rototypeObject, interfaceObject, signature, accessorConfig); |
| 518 {% endfilter %}{# runtime_enabled #} | 512 {% endfilter %}{# runtime_enabled #} |
| 519 {% endfilter %}{# secure_context #} | 513 {% endfilter %}{# secure_context #} |
| 520 {% endfilter %}{# exposed #} | 514 {% endfilter %}{# exposed #} |
| 521 {% endfor %} | 515 {% endfor %} |
| 522 {% endmacro %} | 516 {% endmacro %} |
| OLD | NEW |