Local scope bug in IE9 javascript evaluator

I recently experienced a what-the-fuck-moment when testing some javascript code on internet explorer. All ran well on IE6 upto 8, but not in IE9. After a bit of fiddling, I was able to create a small failing example. function fail() { var p = {} var c = p.c = []; c.push({r: (c = [])}) [...]