1 var apply = require(
'./_apply'),
2 createCtor = require(
'./_createCtor'),
3 root = require(
'./_root');
6 var WRAP_BIND_FLAG = 1;
20 function createPartial(func, bitmask, thisArg, partials) {
21 var isBind = bitmask & WRAP_BIND_FLAG,
22 Ctor = createCtor(func);
26 argsLength = arguments.length,
28 leftLength = partials.length,
29 args = Array(leftLength + argsLength),
30 fn = (
this &&
this !== root &&
this instanceof wrapper) ? Ctor : func;
32 while (++leftIndex < leftLength) {
33 args[leftIndex] = partials[leftIndex];
35 while (argsLength--) {
36 args[leftIndex++] = arguments[++argsIndex];
38 return apply(fn, isBind ? thisArg :
this, args);
43 module.exports = createPartial;