I'm using a generator to create objects, like so:
function* Thing() {
  var x = 0;
  while (x < 3) {
    var rules = [{arr: [1, 2, 3]}, {arr: [1]}, {arr: []}];
    yield {
      arrayMinimum: Math.min(...rules[x].arr)
    }
    x++
  }
}
var create = Thing();
console.log(create.next().value)
console.log(create.next().value)
console.log(create.next().value) // { arrayMinimum: Infinity } ???Why is Math.min(...[]) === Infinity? 
Bonus confusion: Math.max(...[]) === -Infinity ???
 
    