docs: public Object invoke(Object target, Method method, Object[] args) throws Throwable {
  
          PooledMethodInvocation invocation = getInvocation(target, method, args, next);
  
          try {
              // JIT hint
              if (next instanceof MethodInterceptorContext) {
                  return next.proceed(invocation);
              }
              return next.proceed(invocation);
          } finally {
              invocation.clear();
          }
      }