blob: eb3d2ca52eca760c1461e3250be18bfd60e26b5c [file] [log] [blame]
// Optimized out scopes should be considered optimizedOut.
var g = newGlobal();
var dbg = new Debugger;
dbg.addDebuggee(g);
g.eval("" + function f() {
var x = 42;
{
let y = 43;
(function () { })();
}
});
dbg.onEnterFrame = function (f) {
if (f.callee && (f.callee.name === undefined)) {
blockenv = f.environment.parent;
assertEq(blockenv.optimizedOut, true);
assertEq(blockenv.inspectable, true);
assertEq(blockenv.type, "declarative");
assertEq(blockenv.callee, null);
assertEq(blockenv.names().indexOf("y") !== -1, true);
funenv = blockenv.parent;
assertEq(funenv.optimizedOut, true);
assertEq(funenv.inspectable, true);
assertEq(funenv.type, "declarative");
assertEq(funenv.callee, f.older.callee);
assertEq(funenv.names().indexOf("x") !== -1, true);
globalenv = funenv.parent.parent.parent;
assertEq(globalenv.optimizedOut, false);
assertEq(globalenv.inspectable, true);
assertEq(globalenv.type, "object");
assertEq(globalenv.callee, null);
dbg.removeDebuggee(g);
assertEq(blockenv.inspectable, false);
assertEq(funenv.inspectable, false);
}
}
g.f();