1 | 'use strict';
|
2 | var lengthOfArrayLike = require('../internals/length-of-array-like');
|
3 | var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
4 |
|
5 | var $RangeError = RangeError;
|
6 |
|
7 |
|
8 |
|
9 | module.exports = function (O, C, index, value) {
|
10 | var len = lengthOfArrayLike(O);
|
11 | var relativeIndex = toIntegerOrInfinity(index);
|
12 | var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;
|
13 | if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');
|
14 | var A = new C(len);
|
15 | var k = 0;
|
16 | for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];
|
17 | return A;
|
18 | };
|