OLD | NEW |
1 {##############################################################################} | 1 {##############################################################################} |
2 {% macro generate_method(method, world_suffix) %} | 2 {% macro generate_method(method, world_suffix) %} |
3 {% filter conditional(method.conditional_string) %} | 3 {% filter conditional(method.conditional_string) %} |
4 static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const
v8::FunctionCallbackInfo<v8::Value>& info) | 4 static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const
v8::FunctionCallbackInfo<v8::Value>& info) |
5 { | 5 { |
6 {# Local variables #} | 6 {# Local variables #} |
7 {% if method.has_exception_state %} | 7 {% if method.has_exception_state %} |
8 ExceptionState exceptionState(ExceptionState::ExecutionContext, "{{method.na
me}}", "{{interface_name}}", info.Holder(), info.GetIsolate()); | 8 ExceptionState exceptionState(ExceptionState::ExecutionContext, "{{method.na
me}}", "{{interface_name}}", info.Holder(), info.GetIsolate()); |
9 {% endif %} | 9 {% endif %} |
10 {# Overloaded methods have length checked during overload resolution #} | 10 {# Overloaded methods have length checked during overload resolution #} |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 {# [ConstructorCallWith=Document] #} | 226 {# [ConstructorCallWith=Document] #} |
227 Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); | 227 Document& document = *toDocument(currentExecutionContext(info.GetIsolate())); |
228 {% endif %} | 228 {% endif %} |
229 {# Call #} | 229 {# Call #} |
230 {% if method.idl_type == 'void' %} | 230 {% if method.idl_type == 'void' %} |
231 {{cpp_value}}; | 231 {{cpp_value}}; |
232 {% elif method.is_implemented_in_private_script %} | 232 {% elif method.is_implemented_in_private_script %} |
233 {{method.cpp_type}} result{{method.cpp_type_initializer}}; | 233 {{method.cpp_type}} result{{method.cpp_type_initializer}}; |
234 if (!{{method.cpp_value}}) | 234 if (!{{method.cpp_value}}) |
235 return; | 235 return; |
| 236 {% elif method.use_output_parameter_for_result %} |
| 237 {{method.cpp_type}} result; |
| 238 {{cpp_value}}; |
236 {% elif method.is_constructor %} | 239 {% elif method.is_constructor %} |
237 {{method.cpp_type}} impl = {{cpp_value}}; | 240 {{method.cpp_type}} impl = {{cpp_value}}; |
238 {% elif method.use_local_result and not method.union_arguments %} | 241 {% elif method.use_local_result and not method.union_arguments %} |
239 {{method.cpp_type}} result = {{cpp_value}}; | 242 {{method.cpp_type}} result = {{cpp_value}}; |
240 {% endif %} | 243 {% endif %} |
241 {# Post-call #} | 244 {# Post-call #} |
242 {% if method.is_raises_exception %} | 245 {% if method.is_raises_exception %} |
243 if (exceptionState.hadException()) { | 246 if (exceptionState.hadException()) { |
244 {{throw_from_exception_state(method)}}; | 247 {{throw_from_exception_state(method)}}; |
245 return; | 248 return; |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 if method.is_per_world_bindings else '0' %} | 619 if method.is_per_world_bindings else '0' %} |
617 {% set property_attribute = | 620 {% set property_attribute = |
618 'static_cast<v8::PropertyAttribute>(%s)' % ' | '.join(method.property_attribut
es) | 621 'static_cast<v8::PropertyAttribute>(%s)' % ' | '.join(method.property_attribut
es) |
619 if method.property_attributes else 'v8::None' %} | 622 if method.property_attributes else 'v8::None' %} |
620 {% set only_exposed_to_private_script = 'V8DOMConfiguration::OnlyExposedToPrivat
eScript' if method.only_exposed_to_private_script else 'V8DOMConfiguration::Expo
sedToAllScripts' %} | 623 {% set only_exposed_to_private_script = 'V8DOMConfiguration::OnlyExposedToPrivat
eScript' if method.only_exposed_to_private_script else 'V8DOMConfiguration::Expo
sedToAllScripts' %} |
621 static const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfig
uration = { | 624 static const V8DOMConfiguration::MethodConfiguration {{method.name}}MethodConfig
uration = { |
622 "{{method.name}}", {{method_callback}}, {{method_callback_for_main_world}},
{{method.length}}, {{only_exposed_to_private_script}}, | 625 "{{method.name}}", {{method_callback}}, {{method_callback_for_main_world}},
{{method.length}}, {{only_exposed_to_private_script}}, |
623 }; | 626 }; |
624 V8DOMConfiguration::installMethod({{method.function_template}}, {{method.signatu
re}}, {{property_attribute}}, {{method.name}}MethodConfiguration, isolate); | 627 V8DOMConfiguration::installMethod({{method.function_template}}, {{method.signatu
re}}, {{property_attribute}}, {{method.name}}MethodConfiguration, isolate); |
625 {%- endmacro %} | 628 {%- endmacro %} |
OLD | NEW |