Como ficou claro na atualização 3 desta resposta , esta notação: var hash = {}; hash[X] na verdade não faz o hash do objeto X; na verdade, apenas converte Xem uma sequência de caracteres (via .toString()se for um objeto ou em algumas outras conversões internas para vários tipos primitivos) e, em...