Debug = debug.Debug
let listenerComplete = false;
let exceptionThrown = false;
function listener(event, exec_state, event_data, data) {
try {
if (event == Debug.DebugEvent.Break) {
assertEquals(42, exec_state.frame(0).evaluate("42").value());
listenerComplete = true;
}
} catch (e) {
exceptionThrown = true;
};
};
Debug.setListener(listener);
assertEquals(
42,
(function f() {
eval("var f = 42");
debugger;
return f;
})()
);
Debug.setListener(null);
assertFalse(exceptionThrown, "exception in listener");
assertTrue(listenerComplete, "listener did not run to completion");