michael@0: // evalWithBindings to call a method of a debuggee object 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 obj = frame.arguments[0]; michael@0: var expected = frame.arguments[1]; michael@0: assertEq(frame.evalWithBindings("obj.toString()", {obj: obj}).return, expected); michael@0: hits++; michael@0: }; michael@0: michael@0: g.eval("function f(obj, expected) { debugger; }"); michael@0: michael@0: g.eval("f(new Number(-0), '0');"); michael@0: g.eval("f(new String('ok'), 'ok');"); michael@0: g.eval("f({toString: function () { return f; }}, f);"); michael@0: assertEq(hits, 3);