| Index: Source/bindings/templates/methods.cpp | 
| diff --git a/Source/bindings/templates/methods.cpp b/Source/bindings/templates/methods.cpp | 
| index 763d6d7b2bf2a5741a6dd411f80df681e09b5751..1dc98418c8c60939fdb5af255bfbe7a71ccf77b9 100644 | 
| --- a/Source/bindings/templates/methods.cpp | 
| +++ b/Source/bindings/templates/methods.cpp | 
| @@ -9,9 +9,7 @@ static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const | 
| {% endif %} | 
| {% if method.number_of_required_arguments %} | 
| if (UNLIKELY(info.Length() < {{method.number_of_required_arguments}})) { | 
| -        {{throw_type_error(method, | 
| -              'ExceptionMessages::notEnoughArguments(%s, info.Length())' % | 
| -                  method.number_of_required_arguments) | indent(8)}} | 
| +        {{throw_arity_type_error(method, method.number_of_required_arguments)}}; | 
| return; | 
| } | 
| {% endif %} | 
| @@ -258,6 +256,18 @@ throwTypeError(ExceptionMessages::failedToExecute("{{method.name}}", "{{interfac | 
| {% endmacro %} | 
|  | 
|  | 
| +{######################################} | 
| +{% macro throw_arity_type_error(method, number_of_required_arguments) %} | 
| +{% if method.has_exception_state %} | 
| +throwArityTypeError(exceptionState, {{number_of_required_arguments}}, info.Length()) | 
| +{%- elif method.is_constructor %} | 
| +throwArityTypeErrorForConstructor("{{interface_name}}", {{number_of_required_arguments}}, info.Length(), info.GetIsolate()) | 
| +{%- else %} | 
| +throwArityTypeErrorForMethod("{{method.name}}", "{{interface_name}}", {{number_of_required_arguments}}, info.Length(), info.GetIsolate()) | 
| +{%- endif %} | 
| +{% endmacro %} | 
| + | 
| + | 
| {##############################################################################} | 
| {% macro overload_resolution_method(overloads, world_suffix) %} | 
| static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackInfo<v8::Value>& info) | 
| @@ -271,9 +281,7 @@ static void {{overloads.name}}Method{{world_suffix}}(const v8::FunctionCallbackI | 
| {% if overloads.minimum_number_of_required_arguments %} | 
| ExceptionState exceptionState(ExceptionState::ExecutionContext, "{{overloads.name}}", "{{interface_name}}", info.Holder(), info.GetIsolate()); | 
| if (UNLIKELY(info.Length() < {{overloads.minimum_number_of_required_arguments}})) { | 
| -        {{throw_type_error(overloads, | 
| -              'ExceptionMessages::notEnoughArguments(%s, info.Length())' % | 
| -              overloads.minimum_number_of_required_arguments) | indent(8)}} | 
| +        {{throw_arity_type_error(overloads, overloads.minimum_number_of_required_arguments)}}; | 
| return; | 
| } | 
| {% endif %} | 
| @@ -371,9 +379,7 @@ static void constructor{{constructor.overload_index}}(const v8::FunctionCallback | 
| {% if interface_length and not constructor.overload_index %} | 
| {# FIXME: remove UNLIKELY: constructors are expensive, so no difference. #} | 
| if (UNLIKELY(info.Length() < {{interface_length}})) { | 
| -        {{throw_type_error(constructor, | 
| -            'ExceptionMessages::notEnoughArguments(%s, info.Length())' % | 
| -                interface_length) | indent(8)}} | 
| +        {{throw_arity_type_error(constructor, interface_length)}}; | 
| return; | 
| } | 
| {% endif %} | 
| @@ -429,9 +435,7 @@ static void {{v8_class}}ConstructorCallback(const v8::FunctionCallbackInfo<v8::V | 
| {% endif %} | 
| {% if constructor.number_of_required_arguments %} | 
| if (UNLIKELY(info.Length() < {{constructor.number_of_required_arguments}})) { | 
| -        {{throw_type_error(constructor, | 
| -              'ExceptionMessages::notEnoughArguments(%s, info.Length())' % | 
| -                  constructor.number_of_required_arguments) | indent(8)}} | 
| +        {{throw_arity_type_error(constructor, constructor.number_of_required_arguments)}}; | 
| return; | 
| } | 
| {% endif %} | 
|  |