Index: Source/bindings/templates/conversions.cpp |
diff --git a/Source/bindings/templates/conversions.cpp b/Source/bindings/templates/conversions.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cb48705d6c57b8ea7919d39c604f3986987ec2f3 |
--- /dev/null |
+++ b/Source/bindings/templates/conversions.cpp |
@@ -0,0 +1,31 @@ |
+{% 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 %} |