Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: Source/bindings/dart/scripts/templates/interface_cpp.template

Issue 400893007: Add Custom Named property getters for cssStyleDeclaration to determine the existence of a property. (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/1985
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 {% extends 'interface_base_cpp.template' %} 1 {% extends 'interface_base_cpp.template' %}
2 2
3 3
4 {##############################################################################} 4 {##############################################################################}
5 {% macro generate_index_getter_resolver_body(dart_class, class_name, indexed_pro perty_getter) %}
6 {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'unsigned long') %}
7 {# TODO(terry): Should change to 'Getter' for consistency, matches dart:html for indexed props and handle custom. #}
8 if (argumentCount == 2 && name == "{{resolver_string}}") {
9 *autoSetupScope = true;
10 return {{dart_class}}Internal::indexedPropertyGetter;
11 }
12 {% endmacro %}
13
14
15 {##############################################################################}
16 {# Mangled Blink name used by resolver to map to static function. #} 5 {# Mangled Blink name used by resolver to map to static function. #}
17 {##############################################################################} 6 {##############################################################################}
18 {% macro resolver_indexed_name(class_name, name, argument) -%} 7 {% macro resolver_indexed_name(class_name, name, argument) -%}
Leaf 2014/07/22 17:02:29 Since this is now shared by indexed and named prop
19 {% set name = '__' + name + '___' -%} 8 {% set name = '__' + name + '___' -%}
20 {% set count = 1 -%} 9 {% set count = 1 -%}
21 {{class_name}}_{{name}}Callback_RESOLVER_STRING_{{count}}_{{argument}} 10 {{class_name}}_{{name}}Callback_RESOLVER_STRING_{{count}}_{{argument}}
22 {%- endmacro %} 11 {%- endmacro %}
23 12
24 13
25 {# TODO(terry): Implement setter and deleter too #} 14 {# TODO(terry): Implement setter and deleter too #}
26 15
27 16
28 {##############################################################################} 17 {##############################################################################}
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 {##############################################################################} 52 {##############################################################################}
64 {% macro generate_index_getter_resolver_body(dart_class, class_name, indexed_pro perty_getter) %} 53 {% macro generate_index_getter_resolver_body(dart_class, class_name, indexed_pro perty_getter) %}
65 {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'unsigned long') %} 54 {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'unsigned long') %}
66 {# TODO(terry): Should change to 'Getter' for consistency, matches dart:html for indexed props and handle custom. #} 55 {# TODO(terry): Should change to 'Getter' for consistency, matches dart:html for indexed props and handle custom. #}
67 if (argumentCount == 2 && name == "{{resolver_string}}") { 56 if (argumentCount == 2 && name == "{{resolver_string}}") {
68 *autoSetupScope = true; 57 *autoSetupScope = true;
69 return {{dart_class}}Internal::indexedPropertyGetter; 58 return {{dart_class}}Internal::indexedPropertyGetter;
70 } 59 }
71 {% endmacro %} 60 {% endmacro %}
72 61
62 {##############################################################################}
63 {% macro generate_named_getter_resolver_body(dart_class, class_name, named_prope rty_getter) %}
64 {% set resolver_string = resolver_indexed_name(class_name, 'getter', 'DOMStrin g') %}
65 // TODO(terry/efortuna): v8 implements PropetyGetter, PropertyEnumerator, and
66 // PropertyQuery. On the Dart side we currently only implement
67 // propertyQuery. Implement the other two.
68 if (argumentCount == 2 && name == "{{resolver_string}}") {
69 *autoSetupScope = true;
70 return {{dart_class}}Internal::propertyQuery;
71 }
72 {% endmacro %}
73 73
74 {##############################################################################} 74 {##############################################################################}
75 {% block indexed_property_getter_resolver %} 75 {% block indexed_property_getter_resolver %}
76 {# TODO(terry): Support all indexed and named properties today only indexed getter is supported. #} 76 {# TODO(terry): Support all indexed and named properties today only indexed getter is supported. #}
77 {# Resolver indexed/named properties #} 77 {# Resolver indexed properties #}
78 {% if indexed_property_getter and not indexed_property_getter.is_custom %} 78 {% if indexed_property_getter and not indexed_property_getter.is_custom %}
79 {{generate_index_getter_resolver_body(dart_class, interface_name, indexed_pr operty_getter) | indent(4)}} 79 {{generate_index_getter_resolver_body(dart_class, interface_name, indexed_pr operty_getter) | indent(4)}}
80 {% endif %} 80 {% endif %}
81 {% endblock %} 81 {% endblock %}
82 82
83 {##############################################################################}
84 {% block named_property_getter_resolver %}
85 {# Resolver named properties #}
86 {% if named_property_getter %}
87 {{generate_named_getter_resolver_body(dart_class, interface_name, named_prop erty_getter) | indent(4)}}
88 {% endif %}
89 {% endblock %}
90
83 91
84 {##############################################################################} 92 {##############################################################################}
85 {% macro generate_symbolizer_indexed_property_getter_body(dart_class, interface_ name) %} 93 {% macro generate_symbolizer_indexed_property_getter_body(dart_class, interface_ name) %}
86 {% set resolver_string = resolver_indexed_name(interface_name, 'getter', 'unsign ed long') %} 94 {% set resolver_string = resolver_indexed_name(interface_name, 'getter', 'unsign ed long') %}
87 if (nf == {{dart_class}}Internal::indexedPropertyGetter) { 95 if (nf == {{dart_class}}Internal::indexedPropertyGetter) {
88 return reinterpret_cast<const uint8_t*>("{{resolver_string}}"); 96 return reinterpret_cast<const uint8_t*>("{{resolver_string}}");
89 } 97 }
90 {% endmacro %} 98 {% endmacro %}
91 99
92 100 {##############################################################################}
101 {% macro generate_symbolizer_named_property_getter_body(dart_class, interface_na me) %}
102 {% set resolver_string = resolver_indexed_name(interface_name, 'getter', 'DOMStr ing') %}
103 // TODO(terry/efortuna): v8 implements PropetyGetter, PropertyEnumerator, an d
104 // PropertyQuery. On the Dart side we currently only implement
105 // propertyQuery. Implement the other two.
106 if (nf == {{dart_class}}Internal::propertyQuery) {
107 return reinterpret_cast<const uint8_t*>("{{resolver_string}}");
108 }
109 {% endmacro %}
93 {##############################################################################} 110 {##############################################################################}
94 {% block generate_symbolizer_indexed_property_getter %} 111 {% block generate_symbolizer_indexed_property_getter %}
95 {% if indexed_property_getter and not indexed_property_getter.is_custom %} 112 {% if indexed_property_getter and not indexed_property_getter.is_custom %}
96 {{generate_symbolizer_indexed_property_getter_body(dart_class, interface_name) }} 113 {{generate_symbolizer_indexed_property_getter_body(dart_class, interface_name) }}
97 {% endif %} 114 {% endif %}
98 {% endblock %} 115 {% endblock %}
116
117 {##############################################################################}
118 {% block generate_symbolizer_named_property_getter %}
119 {% if named_property_getter %}
120 {{generate_symbolizer_named_property_getter_body(dart_class, interface_name)}}
121 {% endif %}
122 {% endblock %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698