What is going on in this code?
var a = {a:1};
var b = {b:2};
var c = {};
c[a] = 1;
c[b] === 1 // true!
c[b] = 2;
c[a] === 2 // true!
Specifically, why does using looking up b in c return the value that was stored in a property of a?
What does it mean to use an object as a key to a property in JavaScript?
I've tested this in Chrome/Node and in Firefox.