3 var callable = require('../../object/valid-callable')
4 , aFrom = require('../../array/from')
5 , defineLength = require('../_define-length')
7 , apply = Function.prototype.apply;
9 module.exports = function (/*…args*/) {
10 var fn = callable(this)
11 , args = aFrom(arguments);
13 return defineLength(function () {
14 return apply.call(fn, this, args.concat(aFrom(arguments)));
15 }, fn.length - args.length);