| 'use strict'; | 
| var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); | 
| var toLength = require('../internals/to-length'); | 
|   | 
| var $RangeError = RangeError; | 
|   | 
| // `ToIndex` abstract operation | 
| // https://tc39.es/ecma262/#sec-toindex | 
| module.exports = function (it) { | 
|   if (it === undefined) return 0; | 
|   var number = toIntegerOrInfinity(it); | 
|   var length = toLength(number); | 
|   if (number !== length) throw new $RangeError('Wrong length or index'); | 
|   return length; | 
| }; |