blob: 1a81c99dd0f62928ce4d21aa2e91eaba2699dba8 [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='kValidValues') %}
const char* const {{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 %}