You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
757 B
JavaScript
23 lines
757 B
JavaScript
'use strict';
|
|
var path = require('./_path')
|
|
, invoke = require('./_invoke')
|
|
, aFunction = require('./_a-function');
|
|
module.exports = function(/* ...pargs */){
|
|
var fn = aFunction(this)
|
|
, length = arguments.length
|
|
, pargs = Array(length)
|
|
, i = 0
|
|
, _ = path._
|
|
, holder = false;
|
|
while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
|
|
return function(/* ...args */){
|
|
var that = this
|
|
, aLen = arguments.length
|
|
, j = 0, k = 0, args;
|
|
if(!holder && !aLen)return invoke(fn, pargs, that);
|
|
args = pargs.slice();
|
|
if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
|
|
while(aLen > k)args.push(arguments[k++]);
|
|
return invoke(fn, args, that);
|
|
};
|
|
}; |