1/**
2 * The base implementation of `_.clamp` which doesn't coerce arguments.
3 *
4 * @private
5 * @param {number} number The number to clamp.
6 * @param {number} [lower] The lower bound.
7 * @param {number} upper The upper bound.
8 * @returns {number} Returns the clamped number.
9 */
10function baseClamp(number, lower, upper) {
11  if (number === number) {
12    if (upper !== undefined) {
13      number = number <= upper ? number : upper;
14    }
15    if (lower !== undefined) {
16      number = number >= lower ? number : lower;
17    }
18  }
19  return number;
20}
21
22module.exports = baseClamp;
23