Javascript objects can be used as maps. The following all is valid code:

```
var x = {};
x.a = 1;
x['b'] = 2; // the same as x.b = 2;
x[3] = 3; // x.3 won't work, but this syntax works fine. Also, x[3] == x['3'].
x['What, this works too?!?!?'] = 'Yup, it does!';

```

But today I tested another case which... seems to work, but raises some warning flags in my head because it looks... wrong:

```
x[null] = 42;

```

Now, it would be extremely cool if this worked as expected (I won't have to rewrite a bunch of code then), but can I rely on it? Or maybe this is just some undocumented behavior which just *happens* to work in all modern browsers but might as well cease working on the next release of Google Chrome?