Environment-identity-05.js (547B)
1 // Tests that freshened blocks behave correctly in Debugger. 2 3 var g = newGlobal({newCompartment: true}); 4 var dbg = Debugger(g); 5 var log = ''; 6 var oldEnv = null; 7 dbg.onDebuggerStatement = function (frame) { 8 if (!oldEnv) { 9 oldEnv = frame.environment; 10 } else { 11 // Block has been freshened by |for (let ...)|, should be different 12 // identity. 13 log += (oldEnv === frame.environment); 14 } 15 log += frame.environment.getVariable("x"); 16 }; 17 g.eval("for (let x = 0; x < 2; x++) { eval(\"\"); debugger; }"); 18 gc(); 19 assertEq(log, "0false1");