// Tests that freshened blocks behave correctly in Debugger. | |
var g = newGlobal(); | |
var dbg = Debugger(g); | |
var log = ''; | |
var oldEnv = null; | |
dbg.onDebuggerStatement = function (frame) { | |
if (!oldEnv) { | |
oldEnv = frame.environment; | |
} else { | |
// Block has been freshened by |for (let ...)|, should be different | |
// identity. | |
log += (oldEnv === frame.environment); | |
} | |
log += frame.environment.getVariable("x"); | |
}; | |
g.eval("for (let x = 0; x < 2; x++) debugger;"); | |
gc(); | |
assertEq(log, "0false1"); |