I watch this lecture: http://www.youtube.com/watch?v=Kq4FpMe6cRs

function bar(fn) {
fn();
}
function foo() {
var x = 8;
bar(function baz() { return x; });
}
Object.prototype.x = 'foo';
At minute 35, the above number is presented. The lecturer claims that some browsers will return fooinstead 8.
Why?
By the way, when I wrote this question, I understood, but I will post this question anyway, because this is an interesting problem. :)
Live demo: http://jsfiddle.net/simevidas/mHyKc/
Warnings Opera 11 'foo', all my other browsers (including IE9) return 8.
: , , . , . (baz), Opera 8, , .
?