|
1 // arguments works in evalWithBindings (it does not interpose a function scope) |
|
2 var g = newGlobal(); |
|
3 var dbg = new Debugger; |
|
4 var global = dbg.addDebuggee(g); |
|
5 var hits = 0; |
|
6 dbg.onDebuggerStatement = function (frame) { |
|
7 var argc = frame.arguments.length; |
|
8 assertEq(argc, 7); |
|
9 assertEq(frame.evalWithBindings("arguments[prop]", {prop: "length"}).return, argc); |
|
10 for (var i = 0; i < argc; i++) |
|
11 assertEq(frame.evalWithBindings("arguments[i]", {i: i}).return, frame.arguments[i]); |
|
12 hits++; |
|
13 }; |
|
14 g.eval("function f() { debugger; }"); |
|
15 g.eval("f(undefined, -0, NaN, '\uffff', Array.prototype, Math, f);"); |
|
16 assertEq(hits, 1); |