[...Array(5).keys()]; => [0, 1, 2, 3, 4]
[...Array(10).keys()] //=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
function* range(start=0, end=null, step=1) { if (end == null) { end = start; start = 0; } for (let i=start; i < end; i+=step) { yield i; } }