docs: function methodPromify(target, method, arg0, arg1) {
    var chopLength = 2
      , argCount = arguments.length - chopLength;
    if (argCount > 2) {
      var args = slice.call(arguments, chopLength);
      return new MyPromise(function(resolve, reject) {
        args.push(function(err, result) {
          if (err) { reject(err); }
          else { resolve(result); }
        });
        target[method].apply(target, args);
      });
    } else {
      return new MyPromise(function(resolve, reject) {
        var cb = function(err, result) {
          if (err) { reject(err); }
          else { resolve(result); }
        };
        if (argCount === 2) {
          target[method].call(target, arg0, arg1, cb);
        } else if (argCount === 1) {
          target[method].call(target, arg0, cb);
        } else if (argCount === 0) {
          target[method].call(target, cb);
        }
      });
    }
  }