18 lines
760 B
JavaScript
18 lines
760 B
JavaScript
|
'use strict';
|
||
|
var toObject = require('../internals/to-object');
|
||
|
var toAbsoluteIndex = require('../internals/to-absolute-index');
|
||
|
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
||
|
|
||
|
// `Array.prototype.fill` method implementation
|
||
|
// https://tc39.es/ecma262/#sec-array.prototype.fill
|
||
|
module.exports = function fill(value /* , start = 0, end = @length */) {
|
||
|
var O = toObject(this);
|
||
|
var length = lengthOfArrayLike(O);
|
||
|
var argumentsLength = arguments.length;
|
||
|
var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
|
||
|
var end = argumentsLength > 2 ? arguments[2] : undefined;
|
||
|
var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
|
||
|
while (endPos > index) O[index++] = value;
|
||
|
return O;
|
||
|
};
|