Das especificações, §15.9.1.1 :
Um objeto Date contém um número que indica um instante em particular dentro de um milissegundo. Esse número é chamado de valor temporal. Um valor de tempo também pode ser NaN, indicando que o objeto Date não representa um instante específico de tempo.
O tempo é medido no ECMAScript em milissegundos desde 01 de janeiro de 1970 UTC. Os valores no tempo pulam segundos são ignorados. Supõe-se que haja exatamente 86.400.000 milissegundos por dia. Os valores do número ECMAScript podem representar todos os números inteiros de –9.007.199.254.740.992 a 9.007.199.254.740.992; esse intervalo é suficiente para medir tempos com precisão de milissegundos por qualquer instante em aproximadamente 285.616 anos, para frente ou para trás, a partir de 01 de janeiro de 1970, UTC.
O intervalo real de horas suportado pelos objetos ECMAScript Date é um pouco menor: exatamente –100.000.000 dias a 100.000.000 dias medidos em relação à meia-noite no início de 01 de janeiro de 1970 UTC. Isso fornece um intervalo de 8.640.000.000.000.000.000 milissegundos para os dois lados de 01 de janeiro de 1970, UTC.
O momento exato da meia-noite no início de 01 de janeiro de 1970 UTC é representado pelo valor +0.
O terceiro parágrafo é o mais relevante. Com base nesse parágrafo, podemos obter a data mais new Date(-8640000000000000)
precoce precisa por especificação , que é terça-feira, 20 de abril de 271.821 AEC (AEC = Antes da Era Comum , por exemplo, o ano -271.821).