Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2017/ToIndex.js
| 26 lines
| 679 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $RangeError = GetIntrinsic('%RangeError%'); | ||||
var ToInteger = require('./ToInteger'); | ||||
var ToLength = require('./ToLength'); | ||||
var SameValueZero = require('./SameValueZero'); | ||||
// https://www.ecma-international.org/ecma-262/8.0/#sec-toindex | ||||
module.exports = function ToIndex(value) { | ||||
if (typeof value === 'undefined') { | ||||
return 0; | ||||
} | ||||
var integerIndex = ToInteger(value); | ||||
if (integerIndex < 0) { | ||||
throw new $RangeError('index must be >= 0'); | ||||
} | ||||
var index = ToLength(integerIndex); | ||||
if (!SameValueZero(integerIndex, index)) { | ||||
throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); | ||||
} | ||||
return index; | ||||
}; | ||||