blob: 904b624809d5ba37ad04bd65d2d908327cb9dbc2 [file] [log] [blame]
var g = newGlobal();
var dbg = new Debugger;
var gw = dbg.addDebuggee(g);
// executeInGlobal should be able to introduce and persist lexical bindings.
assertEq(gw.executeInGlobal(`let x = 42; x;`).return, 42);
assertEq(gw.executeInGlobal(`x;`).return, 42);
// By contrast, Debugger.Frame.eval is like direct eval, and shouldn't be able
// to introduce new lexical bindings.
dbg.onDebuggerStatement = function (frame) { frame.eval(`let y = 84;`); };
g.eval(`debugger;`);
assertEq(!!gw.executeInGlobal(`y;`).throw, true);