aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/library/modules/_partial.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/library/modules/_partial.js')
-rw-r--r--node_modules/core-js/library/modules/_partial.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/node_modules/core-js/library/modules/_partial.js b/node_modules/core-js/library/modules/_partial.js
new file mode 100644
index 00000000..ca3f35bf
--- /dev/null
+++ b/node_modules/core-js/library/modules/_partial.js
@@ -0,0 +1,25 @@
+'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);
+ };
+};