docs: public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          String name = method.getName();
          if (method.getDeclaringClass() == GroovyObject.class) {
              if (name.equals("getMetaClass")) {
                  return getMetaClass();
              } else if (name.equals("setMetaClass")) {
                  return setMetaClass((MetaClass) args[0]);
              }
          }
  
          return InvokerHelper.invokeMethod(extension, method.getName(), args);
      }