docs: public static Object invokeGroovyObjectInvoker(MissingMethodException e, Object receiver, String name, Object[] args) {
          if (e instanceof MissingMethodExecutionFailed) {
              throw (MissingMethodException)e.getCause();
          } else if (receiver.getClass() == e.getType() && e.getMethod().equals(name)) {
              //TODO: we should consider calling this one directly for MetaClassImpl,
              //      then we save the new method selection
  
              // in case there's nothing else, invoke the object's own invokeMethod()
              return ((GroovyObject)receiver).invokeMethod(name, args);
          } else {
              throw e;
          }
      }