code: function methodWrapper(fn) {
    return function() {
      var args = [].slice.call(arguments);
      args.unshift(this);
      return fn.apply(this, args);
    };
  }
docs: Make a wrapper than passes `this` as the first argument, Python style. All extension functions that can extend native types must follow this convention.