dist/core-next-model.js
function createPartial(func, bitmask, thisArg, partials) {
  var isBind = bitmask & BIND_FLAG,
      Ctor = createCtor(func);

  function wrapper() {
    var argsIndex = -1,
        argsLength = arguments.length,
        leftIndex = -1,
        leftLength = partials.length,
        args = Array(leftLength + argsLength),
        fn = this && this !== root && this instanceof wrapper ? Ctor : func;

    while (++leftIndex < leftLength) {
      args[leftIndex] = partials[leftIndex];
    }
    while (argsLength--) {
      args[leftIndex++] = arguments[++argsIndex];
    }
    return apply(fn, isBind ? thisArg : this, args);
  }
  return wrapper;
}
function createPartial(func, bitmask, thisArg, partials) {
  var isBind = bitmask & BIND_FLAG,
      Ctor = createCtor(func);

  function wrapper() {
    var argsIndex = -1,
        argsLength = arguments.length,
        leftIndex = -1,
        leftLength = partials.length,
        args = Array(leftLength + argsLength),
        fn = this && this !== root && this instanceof wrapper ? Ctor : func;

    while (++leftIndex < leftLength) {
      args[leftIndex] = partials[leftIndex];
    }
    while (argsLength--) {
      args[leftIndex++] = arguments[++argsIndex];
    }
    return apply(fn, isBind ? thisArg : this, args);
  }
  return wrapper;
}
function createPartial ( func , bitmask , thisArg , partials ) { var isBind = bitmask & BIND_FLAG , Ctor = createCtor ( func ) ; function wrapper ( ) { var argsIndex = - 1 , argsLength = arguments . length , leftIndex = - 1 , leftLength = partials . length , args = Array ( leftLength + argsLength ) , fn = this && this !== root && this instanceof wrapper ? Ctor : func ; while ( ++ leftIndex < leftLength ) { args [ leftIndex ] = partials [ leftIndex ] ; } while ( argsLength -- ) { args [ leftIndex ++ ] = arguments [ ++ argsIndex ] ; } return apply ( fn , isBind ? thisArg : this , args ) ; } return wrapper ; }
Creates a function that wraps `func` to invoke it with the `this` binding
of `thisArg` and `partials` prepended to the arguments it receives.

@private
@param {Function} func The function to wrap.
@param {number} bitmask The bitmask flags. See `createWrap` for more details.
@param {*} thisArg The `this` binding of `func`.
@param {Array} partials The arguments to prepend to those provided to
the new function.
@returns {Function} Returns the new wrapped function.
Creates a function that wraps func to invoke it with the this binding of thisArg and partials prepended to the arguments it receives .