summaryrefslogtreecommitdiff
path: root/tools/eslint/node_modules/escope/node_modules/es6-weak-map/node_modules/es5-ext/array/generate.js
blob: 5e066750b1d5baa420ac457830317654cf34493d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'use strict';

var toPosInt = require('../number/to-pos-integer')
  , value    = require('../object/valid-value')

  , slice = Array.prototype.slice;

module.exports = function (length/*, …fill*/) {
	var arr, l;
	length = toPosInt(value(length));
	if (length === 0) return [];

	arr = (arguments.length < 2) ? [undefined] :
			slice.call(arguments, 1, 1 + length);

	while ((l = arr.length) < length) {
		arr = arr.concat(arr.slice(0, length - l));
	}
	return arr;
};