Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
27 lines
679 B
JavaScript
27 lines
679 B
JavaScript
'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;
|
|
};
|