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