docs: function wrap(func, superFunc) {
      if (!hasSuper(func)) {
        return func;
      }
      // ensure an unwrapped super that calls _super is wrapped with a terminal _super
      if (!superFunc.wrappedFunction && hasSuper(superFunc)) {
        return _wrap(func, _wrap(superFunc, ROOT));
      }
      return _wrap(func, superFunc);
    }