Today, I ran some tests to help me understand the scope in which an eval runs. Turns out, like so many things in the browser world, it's very unpredictable and exhibit different behaviors in different browsers. Let's start with the following snippet of code. I've added comments to demarcate areas in the code, which I will be changing with each iteration. var foo = 123; var bar = { changeFoo: funct

