| '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)); | 
|   } | 
| }); |