| OLD | NEW |
| 1 {% extends 'interface_base.cpp.tmpl' %} | 1 {% extends 'interface_base.cpp.tmpl' %} |
| 2 | 2 |
| 3 {##############################################################################} | 3 {##############################################################################} |
| 4 {% block indexed_property_getter %} | 4 {% block indexed_property_getter %} |
| 5 {% if indexed_property_getter and not indexed_property_getter.is_custom %} | 5 {% if indexed_property_getter and not indexed_property_getter.is_custom %} |
| 6 {% set getter = indexed_property_getter %} | 6 {% set getter = indexed_property_getter %} |
| 7 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) { | 7 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) { |
| 8 {% if getter.is_raises_exception %} | 8 {% if getter.is_raises_exception %} |
| 9 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::IndexedGetter
Context, "{{interface_name}}"); | 9 ExceptionState exceptionState(info.GetIsolate(), ExceptionState::IndexedGetter
Context, "{{interface_name}}"); |
| 10 {% endif %} | 10 {% endif %} |
| (...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 {% else %} | 645 {% else %} |
| 646 {{cpp_class}}V8Internal::constructor(info); | 646 {{cpp_class}}V8Internal::constructor(info); |
| 647 {% endif %} | 647 {% endif %} |
| 648 } | 648 } |
| 649 | 649 |
| 650 {% endif %} | 650 {% endif %} |
| 651 {% endblock %} | 651 {% endblock %} |
| 652 | 652 |
| 653 | 653 |
| 654 {##############################################################################} | 654 {##############################################################################} |
| 655 {% macro install_origin_safe_method(method, world_suffix, instance_template, pro
totype_template) %} | 655 {% macro install_origin_safe_method(method, instance_template, prototype_templat
e) %} |
| 656 {% from 'utilities.cpp.tmpl' import property_location %} | 656 {% from 'utilities.cpp.tmpl' import property_location %} |
| 657 {# TODO(dcheng): Currently, bindings must create a function object for each | 657 {# TODO(dcheng): Currently, bindings must create a function object for each |
| 658 realm as a hack to support the incumbent realm. Clean this up when Blink | 658 realm as a hack to support the incumbent realm. Clean this up when Blink |
| 659 properly supports the incumbent realm. #} | 659 properly supports the incumbent realm. #} |
| 660 {% set getter_callback = | 660 {% set getter_callback = |
| 661 '%s::%sOriginSafeMethodGetterCallback%s' % | 661 '%s::%sOriginSafeMethodGetterCallback' % |
| 662 (v8_class_or_partial, method.name, world_suffix) %} | 662 (v8_class_or_partial, method.name) %} |
| 663 {% set setter_callback = | 663 {% set setter_callback = |
| 664 '%s::%sOriginSafeMethodSetterCallback' % (v8_class_or_partial, cpp_class) | 664 '%s::%sOriginSafeMethodSetterCallback' % (v8_class_or_partial, cpp_class) |
| 665 if not method.is_unforgeable else 'nullptr' %} | 665 if not method.is_unforgeable else 'nullptr' %} |
| 666 {% set property_attribute = |
| 667 'static_cast<v8::PropertyAttribute>(%s)' % |
| 668 ' | '.join(method.property_attributes or ['v8::None']) %} |
| 669 {% set holder_check = 'V8DOMConfiguration::CheckHolder' %} |
| 670 static const V8DOMConfiguration::AttributeConfiguration {{method.name}}OriginSaf
eAttributeConfiguration[] = { |
| 666 {% if method.is_per_world_bindings %} | 671 {% if method.is_per_world_bindings %} |
| 667 {% set getter_callback_for_main_world = '%sForMainWorld' % getter_callback %} | 672 {% set getter_callback_for_main_world = '%sForMainWorld' % getter_callback %} |
| 668 {% set setter_callback_for_main_world = '%sForMainWorld' % setter_callback | 673 {% set setter_callback_for_main_world = '%sForMainWorld' % setter_callback |
| 669 if not method.is_unforgeable else 'nullptr' %} | 674 if not method.is_unforgeable else 'nullptr' %} |
| 675 {"{{method.name}}", {{getter_callback_for_main_world}}, {{setter_callback_fo
r_main_world}}, nullptr, &{{v8_class}}::wrapperTypeInfo, {{property_attribute}},
{{property_location(method)}}, {{holder_check}}, V8DOMConfiguration::MainWorld}
, |
| 676 {"{{method.name}}", {{getter_callback}}, {{setter_callback}}, nullptr, &{{v8
_class}}::wrapperTypeInfo, {{property_attribute}}, {{property_location(method)}}
, {{holder_check}}, V8DOMConfiguration::NonMainWorlds}} |
| 670 {% else %} | 677 {% else %} |
| 671 {% set getter_callback_for_main_world = 'nullptr' %} | 678 {"{{method.name}}", {{getter_callback}}, {{setter_callback}}, nullptr, &{{v8
_class}}::wrapperTypeInfo, {{property_attribute}}, {{property_location(method)}}
, {{holder_check}}, V8DOMConfiguration::AllWorlds} |
| 672 {% set setter_callback_for_main_world = 'nullptr' %} | |
| 673 {% endif %} | 679 {% endif %} |
| 674 {% set property_attribute = | |
| 675 'static_cast<v8::PropertyAttribute>(%s)' % | |
| 676 ' | '.join(method.property_attributes or ['v8::None']) %} | |
| 677 {% set holder_check = 'V8DOMConfiguration::CheckHolder' %} | |
| 678 const V8DOMConfiguration::AttributeConfiguration {{method.name}}OriginSafeAttrib
uteConfiguration = { | |
| 679 "{{method.name}}", {{getter_callback}}, {{setter_callback}}, {{getter_callba
ck_for_main_world}}, {{setter_callback_for_main_world}}, nullptr, &{{v8_class}}:
:wrapperTypeInfo, {{property_attribute}}, {{property_location(method)}}, {{holde
r_check}} | |
| 680 }; | 680 }; |
| 681 V8DOMConfiguration::installAttribute(isolate, world, {{instance_template}}, {{pr
ototype_template}}, {{method.name}}OriginSafeAttributeConfiguration); | 681 for (const auto& attributeConfig : {{method.name}}OriginSafeAttributeConfigurati
on) |
| 682 V8DOMConfiguration::installAttribute(isolate, world, {{instance_template}}, {{
prototype_template}}, attributeConfig); |
| 682 {%- endmacro %} | 683 {%- endmacro %} |
| 683 | 684 |
| 684 | 685 |
| 685 {##############################################################################} | 686 {##############################################################################} |
| 686 {% macro install_indexed_property_handler(target) %} | 687 {% macro install_indexed_property_handler(target) %} |
| 687 {% set indexed_property_getter_callback = | 688 {% set indexed_property_getter_callback = |
| 688 '%s::indexedPropertyGetterCallback' % v8_class_or_partial %} | 689 '%s::indexedPropertyGetterCallback' % v8_class_or_partial %} |
| 689 {% set indexed_property_setter_callback = | 690 {% set indexed_property_setter_callback = |
| 690 '%s::indexedPropertySetterCallback' % v8_class_or_partial | 691 '%s::indexedPropertySetterCallback' % v8_class_or_partial |
| 691 if indexed_property_setter or named_property_setter else 'nullptr' %} | 692 if indexed_property_setter or named_property_setter else 'nullptr' %} |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 922 } | 923 } |
| 923 | 924 |
| 924 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} | 925 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} |
| 925 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) { | 926 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) { |
| 926 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; | 927 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; |
| 927 } | 928 } |
| 928 | 929 |
| 929 {% endfor %} | 930 {% endfor %} |
| 930 {% endif %} | 931 {% endif %} |
| 931 {% endblock %} | 932 {% endblock %} |
| OLD | NEW |