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

Side by Side Diff: Source/bindings/templates/attributes.cpp

Issue 1008353002: bindings: Reduces the binary size by reducing # of callback functions. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressed a review comment. Created 5 years, 9 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 {% from 'conversions.cpp' import v8_value_to_local_cpp_value %} 1 {% from 'conversions.cpp' import v8_value_to_local_cpp_value %}
2 2
3 3
4 {##############################################################################} 4 {##############################################################################}
5 {% macro attribute_getter(attribute, world_suffix) %} 5 {% macro attribute_getter(attribute, world_suffix) %}
6 {% filter conditional(attribute.conditional_string) %} 6 {% filter conditional(attribute.conditional_string) %}
7 static void {{attribute.name}}AttributeGetter{{world_suffix}}( 7 static void {{attribute.name}}AttributeGetter{{world_suffix}}(
8 {%- if attribute.is_expose_js_accessors %} 8 {%- if attribute.is_expose_js_accessors %}
9 const v8::FunctionCallbackInfo<v8::Value>& info 9 const v8::FunctionCallbackInfo<v8::Value>& info
10 {%- else %} 10 {%- else %}
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 (cpp_class_or_partial, attribute.name) 412 (cpp_class_or_partial, attribute.name)
413 if attribute.needs_constructor_getter_callback else ( 413 if attribute.needs_constructor_getter_callback else (
414 'v8ConstructorAttributeGetterAsAccessor' 414 'v8ConstructorAttributeGetterAsAccessor'
415 if attribute.is_expose_js_accessors else ( 415 if attribute.is_expose_js_accessors else (
416 'v8ConstructorAttributeGetterAsProperty'))) %} 416 'v8ConstructorAttributeGetterAsProperty'))) %}
417 {% set getter_callback_for_main_world = 417 {% set getter_callback_for_main_world =
418 '%sV8Internal::%sAttributeGetterCallbackForMainWorld' % 418 '%sV8Internal::%sAttributeGetterCallbackForMainWorld' %
419 (cpp_class_or_partial, attribute.name) 419 (cpp_class_or_partial, attribute.name)
420 if attribute.is_per_world_bindings else '0' %} 420 if attribute.is_per_world_bindings else '0' %}
421 {% set setter_callback = 421 {% set setter_callback =
422 '0' if not attribute.has_setter else (
423 '%sV8Internal::%sConstructorAttributeSetterCallbackAsProperty' %
424 (cpp_class_or_partial, cpp_class)
425 if (attribute.constructor_type and
426 attribute.name == attribute.constructor_type and
427 not attribute.is_expose_js_accessors) else (
428 '%sV8Internal::%sConstructorAttributeSetterCallbackAsAccessor' %
429 (cpp_class_or_partial, cpp_class)
430 if (attribute.constructor_type and
431 attribute.name == attribute.constructor_type and
432 attribute.is_expose_js_accessors) else (
haraken 2015/03/17 00:06:07 Can we clean up these branches somehow? It looks t
Yuki 2015/03/17 08:35:19 Tried my best.
422 '%sV8Internal::%sAttributeSetterCallback' % 433 '%sV8Internal::%sAttributeSetterCallback' %
423 (cpp_class_or_partial, attribute.name) 434 (cpp_class_or_partial, attribute.name)))) %}
424 if attribute.has_setter else '0' %}
425 {% set setter_callback_for_main_world = 435 {% set setter_callback_for_main_world =
426 '%sV8Internal::%sAttributeSetterCallbackForMainWorld' % 436 '%sV8Internal::%sAttributeSetterCallbackForMainWorld' %
427 (cpp_class_or_partial, attribute.name) 437 (cpp_class_or_partial, attribute.name)
428 if attribute.is_per_world_bindings and attribute.has_setter else '0' %} 438 if attribute.is_per_world_bindings and attribute.has_setter else '0' %}
429 {% set wrapper_type_info = 439 {% set wrapper_type_info =
430 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' % 440 'const_cast<WrapperTypeInfo*>(&V8%s::wrapperTypeInfo)' %
431 attribute.constructor_type 441 attribute.constructor_type
432 if attribute.constructor_type else '0' %} 442 if attribute.constructor_type else '0' %}
433 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % 443 {% set access_control = 'static_cast<v8::AccessControl>(%s)' %
434 ' | '.join(attribute.access_control_list) %} 444 ' | '.join(attribute.access_control_list) %}
(...skipping 13 matching lines...) Expand all
448 access_control, 458 access_control,
449 property_attribute, 459 property_attribute,
450 only_exposed_to_private_script, 460 only_exposed_to_private_script,
451 ] %} 461 ] %}
452 {% if not attribute.is_expose_js_accessors %} 462 {% if not attribute.is_expose_js_accessors %}
453 {% set attribute_configuration_list = attribute_configuration_list 463 {% set attribute_configuration_list = attribute_configuration_list
454 + [on_prototype] %} 464 + [on_prototype] %}
455 {% endif %} 465 {% endif %}
456 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} 466 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}}
457 {%- endmacro %} 467 {%- endmacro %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698