michael@0: // The arguments can escape from a function via a debugging hook. michael@0: michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger(g); michael@0: michael@0: // capture arguments object and test function michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: var args = frame.older.environment.parent.getVariable('arguments'); michael@0: assertEq(args.missingArguments, true); michael@0: }; michael@0: g.eval("function h() { debugger; }"); michael@0: g.eval("function f() { var x = 0; return function() { x++; h() } }"); michael@0: g.eval("f('ponies')()");