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