Como quedó claro en la actualización 3 de esta respuesta , esta notación: var hash = {}; hash[X] en realidad no pica el objeto X; en realidad solo se convierte Xen una cadena (a través de .toString()si es un objeto, o alguna otra conversión incorporada para varios tipos primitivos) y luego mira...