Confundido pelo comportamento do `map` em matrizes criadas usando` new` [duplicate]

Esta pergunta já tem uma resposta aqui:

alores indefinidos no inicializador Array (len) 5 respostas

Estou confuso com os resultados demap sobre uma matriz criada comnew:

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]

Eu esperavaa.map(returnsFourteen) para retornar[14, 14, 14, 14] (o mesmo queb.map(returnsFourteen), porque de acordo com oágina @MDN em matrizes:

Se o único argumento transmitido ao construtor Array for um número inteiro entre 0 e 2 ** 32-1 (inclusive), uma nova matriz JavaScript será criada com esse número de elemento

Interpreto que isso significa quea deve ter 4 elementos.

O que estou perdendo aqui

questionAnswers(4)

yourAnswerToTheQuestion