docs: private static Object invoke(Object object, Method method, Object... arguments) throws Exception
    {
      Throwable cause = null;
      try {
        method.setAccessible(true);
        return method.invoke(object instanceof Class<?> ? null : object, arguments);
      }
      catch(IllegalAccessException e) {
        throw new BugError(e);
      }
      catch(InvocationTargetException e) {
        cause = e.getCause();
        if(cause instanceof Exception) {
          throw (Exception)cause;
        }
        if(cause instanceof AssertionError) {
          throw (AssertionError)cause;
        }
      }
      throw new BugError("Method |%s| invocation fails: %s", method, cause);
    }