michael@0: // arguments works in evalWithBindings (it does not interpose a function scope) michael@0: var g = newGlobal(); michael@0: var dbg = new Debugger; michael@0: var global = dbg.addDebuggee(g); michael@0: var hits = 0; michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: var argc = frame.arguments.length; michael@0: assertEq(argc, 7); michael@0: assertEq(frame.evalWithBindings("arguments[prop]", {prop: "length"}).return, argc); michael@0: for (var i = 0; i < argc; i++) michael@0: assertEq(frame.evalWithBindings("arguments[i]", {i: i}).return, frame.arguments[i]); michael@0: hits++; michael@0: }; michael@0: g.eval("function f() { debugger; }"); michael@0: g.eval("f(undefined, -0, NaN, '\uffff', Array.prototype, Math, f);"); michael@0: assertEq(hits, 1);