 
   _invoke: (thisArg, passedArguments...) ->
     matchedFunction = @match(passedArguments...)
-    return matchedFunction.apply(thisArg, passedArguments) if matchedFunction?
-
-    throw new TypeError(ERRORS.NO_MATCHING_OVERLOADS)
+
+    if matchedFunction? then return matchedFunction.apply(thisArg, passedArguments)
+    else throw new TypeError(ERRORS.NO_MATCHING_OVERLOADS)
 
   _getDefaultFunction: -> @_defaultFunction
 

    unless Array.isArray(signature)
      throw new Error(ERRORS.INVALID_OVERLOAD_SIGNATURE)

    if typeof functionToCall isnt "function"
      throw new Error(ERRORS.INVALID_OVERLOAD_FUNCTION)

    overload = new Overload(signature, functionToCall)

        matcher = AbstractMatcher.getMatcher(signatureElement)
      catch e
        throw new TypeError(ERRORS.UNSUPPORTED_SIGNATURE_ELEMENT)

      matcher.compile(signatureElement)

    @_signature = compiledSignature
