blob: b5ae1c892cc2899d1e0010e3c9a1efed5f75e289 [file] [log] [blame]
{% macro v8_value_to_local_cpp_value(thing) %}
{# This indirection is just to avoid spurious white-space lines. #}
{{generate_v8_value_to_local_cpp_value(thing) | trim}}
{%- endmacro %}
{% macro generate_v8_value_to_local_cpp_value(thing) %}
{% set item = thing.v8_value_to_local_cpp_value or thing %}
{% if item.error_message %}
/* {{item.error_message}} */
{% else %}
{% if item.declare_variable %}
{% if item.assign_expression %}
{{item.cpp_type}} {{item.cpp_name}} = {{item.assign_expression}};
{% else %}
{{item.cpp_type}} {{item.cpp_name}};
{% endif %}
{% else %}{# item.declare_variable #}
{% if item.assign_expression %}
{{item.cpp_name}} = {{item.assign_expression}};
{% endif %}
{% endif %}{# item.declare_variable #}
{% if item.set_expression %}
{{item.set_expression}};
{% endif %}
{% if item.check_expression %}
if ({{item.check_expression}})
return{% if item.return_expression %} {{item.return_expression}}{% endif %};
{% endif %}{# item.check_expression #}
{% endif %}{# item.error_message #}
{% endmacro %}
{% macro declare_enum_validation_variable(enum_values, enum_variable='validValues') %}
const char* {{enum_variable}}[] = {
{% for enum_value in enum_values %}
{% if enum_value is none %}
nullptr,
{% else %}
"{{enum_value}}",
{% endif %}
{% endfor %}
};
{%-endmacro %}
{% macro property_location(member) %}
{% set property_location_list = [] %}
{% if member.on_instance %}
{% set property_location_list = property_location_list + ['V8DOMConfiguration::kOnInstance'] %}
{% endif %}
{% if member.on_prototype %}
{% set property_location_list = property_location_list + ['V8DOMConfiguration::kOnPrototype'] %}
{% endif %}
{% if member.on_interface %}
{% set property_location_list = property_location_list + ['V8DOMConfiguration::kOnInterface'] %}
{% endif %}
{{property_location_list | join(' | ')}}
{%- endmacro %}