| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
 | | 'use strict'; |  | // `Math.scale` method implementation |  | // https://rwaldron.github.io/proposal-math-extensions/ |  | module.exports = function scale(x, inLow, inHigh, outLow, outHigh) { |  |   var nx = +x; |  |   var nInLow = +inLow; |  |   var nInHigh = +inHigh; |  |   var nOutLow = +outLow; |  |   var nOutHigh = +outHigh; |  |   // eslint-disable-next-line no-self-compare -- NaN check |  |   if (nx !== nx || nInLow !== nInLow || nInHigh !== nInHigh || nOutLow !== nOutLow || nOutHigh !== nOutHigh) return NaN; |  |   if (nx === Infinity || nx === -Infinity) return nx; |  |   return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow; |  | }; | 
 |