123456789101112131415161718192021 |
- 'use strict';
- var $ = require('../internals/export');
- var aNumber = require('../internals/a-number');
- var notANaN = require('../internals/not-a-nan');
- var sameValue = require('../internals/same-value');
- var $RangeError = RangeError;
- var $min = Math.min;
- var $max = Math.max;
- // `Math.clamp` method
- // https://github.com/tc39/proposal-math-clamp
- $({ target: 'Math', stat: true, forced: true }, {
- clamp: function clamp(value, min, max) {
- aNumber(value);
- notANaN(aNumber(min));
- notANaN(aNumber(max));
- if ((sameValue(min, 0) && sameValue(max, -0)) || min > max) throw new $RangeError('`min` should be smaller than `max`');
- return $min(max, $max(min, value));
- }
- });
|