ToIndex.js 515 B

1234567891011121314151617181920
  1. 'use strict';
  2. var $RangeError = require('es-errors/range');
  3. var ToIntegerOrInfinity = require('./ToIntegerOrInfinity');
  4. var maxSafeInteger = require('../helpers/maxSafeInteger');
  5. // https://262.ecma-international.org/15.0/#sec-toindex
  6. module.exports = function ToIndex(value) {
  7. if (typeof value === 'undefined') {
  8. return 0;
  9. }
  10. var integer = ToIntegerOrInfinity(value);
  11. if (integer < 0 || integer >= maxSafeInteger) {
  12. throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1');
  13. }
  14. return integer;
  15. };