'use strict';

var identity = require('./identity.js');
var _overRest = require('./_overRest.js');
var _setToString = require('./_setToString.js');

/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */
function baseRest(func, start) {
  return _setToString(_overRest(func, start, identity), func + '');
}

module.exports = baseRest;
