ES6 Mapas e Conjuntos: como as chaves de objetos são indexadas com eficiência?

No ES6, Mapas e Conjuntos podem usar Objetos como chaves. No entanto, como a especificação ES6 não determina a implementação subjacente dessas estruturas de dados, fiquei pensando como os modernos mecanismos JS armazenam as chaves para garantir O (1) ou pelo menossublinear recuperação?

Em uma linguagem como Java, o programador pode fornecer explicitamente um método (bom) de hashCode que hash as chaves uniformemente no espaço de chaves para garantir o desempenho. No entanto, como o JS não possui esses recursos, ainda seria justo supor que eles usem algum tipo de hash na implementação de Mapas e Conjuntos?

Qualquer informação será apreciada!

questionAnswers(1)

yourAnswerToTheQuestion