9e186d8182a5d3d192324db59074aa0674c809b4
[yaffs-website] / node_modules / grunt-legacy-util / node_modules / lodash / clamp.js
1 var baseClamp = require('./_baseClamp'),
2     toNumber = require('./toNumber');
3
4 /**
5  * Clamps `number` within the inclusive `lower` and `upper` bounds.
6  *
7  * @static
8  * @memberOf _
9  * @category Number
10  * @param {number} number The number to clamp.
11  * @param {number} [lower] The lower bound.
12  * @param {number} upper The upper bound.
13  * @returns {number} Returns the clamped number.
14  * @example
15  *
16  * _.clamp(-10, -5, 5);
17  * // => -5
18  *
19  * _.clamp(10, -5, 5);
20  * // => 5
21  */
22 function clamp(number, lower, upper) {
23   if (upper === undefined) {
24     upper = lower;
25     lower = undefined;
26   }
27   if (upper !== undefined) {
28     upper = toNumber(upper);
29     upper = upper === upper ? upper : 0;
30   }
31   if (lower !== undefined) {
32     lower = toNumber(lower);
33     lower = lower === lower ? lower : 0;
34   }
35   return baseClamp(toNumber(number), lower, upper);
36 }
37
38 module.exports = clamp;