partial.js 437 Bytes
Newer Older
jatuporn Tonggasem's avatar
jatuporn Tonggasem committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
"use strict";

var callable     = require("../../object/valid-callable")
  , aFrom        = require("../../array/from")
  , defineLength = require("../_define-length")

  , apply = Function.prototype.apply;

module.exports = function (/* …args*/) {
	var fn = callable(this)
	  , args = aFrom(arguments);

	return defineLength(function () {
		return apply.call(fn, this, args.concat(aFrom(arguments)));
	}, fn.length - args.length);
};