code: function wrap(old, fn) {
    return function proxy() {
      var args = new Array(arguments.length + 1);
  
      args[0] = old;
      for (var i = 0, len = arguments.length; i < len; i++) {
        args[i + 1] = arguments[i];
      }
  
      fn.apply(this, args);
    };
  }
docs: wrap a function