| Index: Source/bindings/dart/scripts/templates/interface_cpp.template
|
| diff --git a/Source/bindings/dart/scripts/templates/interface_cpp.template b/Source/bindings/dart/scripts/templates/interface_cpp.template
|
| index 8d10b555bde43ec05566f8df7ae008bd6562fcd0..05fe7741e750e1970e856d1646e966af0396ac02 100644
|
| --- a/Source/bindings/dart/scripts/templates/interface_cpp.template
|
| +++ b/Source/bindings/dart/scripts/templates/interface_cpp.template
|
| @@ -2,20 +2,9 @@
|
|
|
|
|
| {##############################################################################}
|
| -{% macro generate_index_getter_resolver_body(dart_class, class_name, indexed_property_getter) %}
|
| - {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'unsigned long') %}
|
| -{# TODO(terry): Should change to 'Getter' for consistency, matches dart:html for indexed props and handle custom. #}
|
| -if (argumentCount == 2 && name == "{{resolver_string}}") {
|
| - *autoSetupScope = true;
|
| - return {{dart_class}}Internal::indexedPropertyGetter;
|
| -}
|
| -{% endmacro %}
|
| -
|
| -
|
| -{##############################################################################}
|
| {# Mangled Blink name used by resolver to map to static function. #}
|
| {##############################################################################}
|
| -{% macro resolver_indexed_name(class_name, name, argument) -%}
|
| +{% macro resolver_callback_string(class_name, name, argument) -%}
|
| {% set name = '__' + name + '___' -%}
|
| {% set count = 1 -%}
|
| {{class_name}}_{{name}}Callback_RESOLVER_STRING_{{count}}_{{argument}}
|
| @@ -62,7 +51,7 @@ fail:
|
|
|
| {##############################################################################}
|
| {% macro generate_index_getter_resolver_body(dart_class, class_name, indexed_property_getter) %}
|
| - {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'unsigned long') %}
|
| + {% set resolver_string = resolver_callback_string(class_name, 'getter', 'unsigned long') %}
|
| {# TODO(terry): Should change to 'Getter' for consistency, matches dart:html for indexed props and handle custom. #}
|
| if (argumentCount == 2 && name == "{{resolver_string}}") {
|
| *autoSetupScope = true;
|
| @@ -70,29 +59,64 @@ if (argumentCount == 2 && name == "{{resolver_string}}") {
|
| }
|
| {% endmacro %}
|
|
|
| +{##############################################################################}
|
| +{% macro generate_named_getter_resolver_body(dart_class, class_name, named_property_getter) %}
|
| + {% set resolver_string = resolver_callback_string(class_name, 'getter', 'DOMString') %}
|
| +// TODO(terry/efortuna): v8 implements PropetyGetter, PropertyEnumerator, and
|
| +// PropertyQuery. On the Dart side we currently only implement
|
| +// propertyQuery. Implement the other two.
|
| +if (argumentCount == 2 && name == "{{resolver_string}}") {
|
| + *autoSetupScope = true;
|
| + return {{dart_class}}Internal::propertyQuery;
|
| +}
|
| +{% endmacro %}
|
|
|
| {##############################################################################}
|
| {% block indexed_property_getter_resolver %}
|
| {# TODO(terry): Support all indexed and named properties today only indexed getter is supported. #}
|
| - {# Resolver indexed/named properties #}
|
| + {# Resolver indexed properties #}
|
| {% if indexed_property_getter and not indexed_property_getter.is_custom %}
|
| {{generate_index_getter_resolver_body(dart_class, interface_name, indexed_property_getter) | indent(4)}}
|
| {% endif %}
|
| {% endblock %}
|
|
|
| +{##############################################################################}
|
| +{% block named_property_getter_resolver %}
|
| + {# Resolver named properties #}
|
| + {% if named_property_getter %}
|
| + {{generate_named_getter_resolver_body(dart_class, interface_name, named_property_getter) | indent(4)}}
|
| + {% endif %}
|
| +{% endblock %}
|
| +
|
|
|
| {##############################################################################}
|
| {% macro generate_symbolizer_indexed_property_getter_body(dart_class, interface_name) %}
|
| -{% set resolver_string = resolver_indexed_name(interface_name, 'getter', 'unsigned long') %}
|
| +{% set resolver_string = resolver_callback_string(interface_name, 'getter', 'unsigned long') %}
|
| if (nf == {{dart_class}}Internal::indexedPropertyGetter) {
|
| return reinterpret_cast<const uint8_t*>("{{resolver_string}}");
|
| }
|
| {% endmacro %}
|
|
|
| -
|
| +{##############################################################################}
|
| +{% macro generate_symbolizer_named_property_getter_body(dart_class, interface_name) %}
|
| +{% set resolver_string = resolver_callback_string(interface_name, 'getter', 'DOMString') %}
|
| + // TODO(terry/efortuna): v8 implements PropetyGetter, PropertyEnumerator, and
|
| + // PropertyQuery. On the Dart side we currently only implement
|
| + // propertyQuery. Implement the other two.
|
| + if (nf == {{dart_class}}Internal::propertyQuery) {
|
| + return reinterpret_cast<const uint8_t*>("{{resolver_string}}");
|
| + }
|
| +{% endmacro %}
|
| {##############################################################################}
|
| {% block generate_symbolizer_indexed_property_getter %}
|
| {% if indexed_property_getter and not indexed_property_getter.is_custom %}
|
| {{generate_symbolizer_indexed_property_getter_body(dart_class, interface_name)}}
|
| {% endif %}
|
| {% endblock %}
|
| +
|
| +{##############################################################################}
|
| +{% block generate_symbolizer_named_property_getter %}
|
| +{% if named_property_getter %}
|
| + {{generate_symbolizer_named_property_getter_body(dart_class, interface_name)}}
|
| +{% endif %}
|
| +{% endblock %}
|
|
|