Version 1
[yaffs-website] / node_modules / core-js / library / modules / _partial.js
1 'use strict';
2 var path      = require('./_path')
3   , invoke    = require('./_invoke')
4   , aFunction = require('./_a-function');
5 module.exports = function(/* ...pargs */){
6   var fn     = aFunction(this)
7     , length = arguments.length
8     , pargs  = Array(length)
9     , i      = 0
10     , _      = path._
11     , holder = false;
12   while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;
13   return function(/* ...args */){
14     var that = this
15       , aLen = arguments.length
16       , j = 0, k = 0, args;
17     if(!holder && !aLen)return invoke(fn, pargs, that);
18     args = pargs.slice();
19     if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];
20     while(aLen > k)args.push(arguments[k++]);
21     return invoke(fn, args, that);
22   };
23 };