this.name = "outer"; var sb = evalcx(''); sb.name = "inner"; sb.parent = this; var res = 0; function f() { assertEq(this.name, "outer"); res++; } // ff is a property of the inner global object. Generate a CALLNAME IC, then // change ff to a function on the outer global. It should get the inner this // value. evalcx('this.ff = function() {};' + '(function() { ' + 'eval("");' + 'for(var i=0; i<10; i++) {' + 'ff();' + 'if (i == 5) ff = parent.f;' + '}' + '})()', sb); assertEq(res, 4);