UNPKG

core-js

Version:
22 lines (19 loc) 687 B
'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)); } });