Frame-eval-24.js (710B)
1 // Make sure the getVariable/setVariable/eval functions work correctly with 2 // unaliased locals. 3 var g = newGlobal({newCompartment: true}); 4 g.eval(` 5 function g() { debugger; }; 6 function f(arg) { 7 var y = arg - 3; 8 var a1 = 1; 9 var a2 = 1; 10 var b = arg + 9; 11 var z = function() { return a1 + a2; }; 12 g(); 13 return y * b; // To prevent the JIT from optimizing out y and b. 14 };`); 15 16 var dbg = new Debugger(g); 17 18 dbg.onDebuggerStatement = function handleDebugger(frame) { 19 assertEq(frame.older.eval("y + b").return, 26); 20 assertEq(frame.older.environment.getVariable("y"), 7); 21 frame.older.environment.setVariable("b", 4); 22 assertEq(frame.older.eval("y + b").return, 11); 23 }; 24 25 g.f(10);