1// https://rwaldron.github.io/proposal-math-extensions/
2module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
3  if (
4    arguments.length === 0
5      // eslint-disable-next-line no-self-compare
6      || x != x
7      // eslint-disable-next-line no-self-compare
8      || inLow != inLow
9      // eslint-disable-next-line no-self-compare
10      || inHigh != inHigh
11      // eslint-disable-next-line no-self-compare
12      || outLow != outLow
13      // eslint-disable-next-line no-self-compare
14      || outHigh != outHigh
15  ) return NaN;
16  if (x === Infinity || x === -Infinity) return x;
17  return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
18};
19