Confundido por el comportamiento de `map` en matrices creadas usando` new` [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Valores indefinidos en el inicializador de matriz (len) 5 respuestas

Estoy confundido por los resultados demapping sobre una matriz creada connew:

function returnsFourteen() {
    return 14;
}

var a = new Array(4);
> [undefined x 4] in Chrome, [, , , ,] in Firefox
a.map(returnsFourteen);
> [undefined x 4] in Chrome, [, , , ,] in Firefox

var b = [undefined, undefined, undefined, undefined];
> [undefined, undefined, undefined, undefined]
b.map(returnsFourteen);
> [14, 14, 14, 14]

Esperabaa.map(returnsFourteen) regresar[14, 14, 14, 14] (lo mismo queb.map(returnsFourteen), porque según laMDN página en matrices:

Si el único argumento pasado al constructor de Array es un número entero entre 0 y 2 ** 32-1 (inclusive), se crea una nueva matriz de JavaScript con ese número de elementos.

Interpreto que significa quea debe tener 4 elementos.

¿Que me estoy perdiendo aqui

Respuestas a la pregunta(4)

Su respuesta a la pregunta