En Javascript, ¿por qué el mínimo de una matriz de extensión vacía es Infinity?

Estoy usando un generador para crear objects, así:

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 } ??? 

¿Por qué Math.min(...[]) === Infinity ?

Confusión de bonificación: Math.max(...[]) === -Infinity ???

Esto se debe a que la list de arguments especificada por (...[]) es la list vacía de arguments, es decir, está haciendo Math.min() sin arguments.

La especificación Math.min para Math.min dice :

Si no se dan arguments, el resultado es + ∞.

(Y, como era de esperar, tiene una statement similar para Math.max ).