michael@0: // setVariable can change the types of variables and arguments in functions. michael@0: michael@0: var g = newGlobal(); michael@0: g.eval("function f(a) { var b = a + 1; debugger; return a + b; }"); michael@0: for (var i = 0; i < 20; i++) michael@0: assertEq(g.f(i), 2 * i + 1); michael@0: michael@0: var dbg = new Debugger(g); michael@0: dbg.onDebuggerStatement = function (frame) { michael@0: frame.environment.setVariable("a", "xyz"); michael@0: frame.environment.setVariable("b", "zy"); michael@0: }; michael@0: for (var i = 0; i < 10; i++) michael@0: assertEq(g.f(i), "xyzzy");