michael@0: // Debugger.Environment.prototype.callee gets the right closure. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger; michael@0: var gw = dbg.addDebuggee(g); michael@0: michael@0: g.eval('function f(x) { return function (y) { debugger; return x + y; } }'); michael@0: g.eval('var g = f(2);'); michael@0: g.eval('var h = f(3);'); michael@0: michael@0: function check(fun, label) { michael@0: print("check(" + label + ")"); michael@0: var hits; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: hits++; michael@0: var env = frame.environment; michael@0: assertEq(env.callee, gw.makeDebuggeeValue(fun)); michael@0: }; michael@0: hits = 0; michael@0: fun(); michael@0: assertEq(hits, 1); michael@0: } michael@0: michael@0: check(g.g, 'g.g'); michael@0: check(g.h, 'g.h');