Ну а вот это, убого смотрится или норм?
hash.objects = [];
function hash (value) {
var index = hash.objects.indexOf(value);
if (index === -1) {
index = hash.objects.push(value) - 1;
}
return '_hash:' + index
}
var map = {};
var key = {};
var key2 = {};
map[hash(key)] = 5;
map[hash(key2)] = 'ololo';
alert(map[hash(key)]);
alert(map[hash(key2)]);
но память не очищается...