Debug = debug.Debug
var exception = null;
var break_count = 0;
function listener(event, exec_state, event_data, data) {
if (event != Debug.DebugEvent.Break) return;
try {
print(event_data.sourceLineText());
assertTrue(
event_data.sourceLineText().indexOf(`Break ${break_count++}.`) > 0);
exec_state.prepareStep(Debug.StepAction.StepInto);
} catch (e) {
exception = e;
}
};
function replaceCallback(a) {
return "x"
;
}
var re = /x/g;
for (var i = 0; i < 10000; i++) "x".replace(re, replaceCallback);
Debug.setListener(listener);
debugger;
var result = "x".replace(re, replaceCallback);
Debug.setListener(null);
assertNull(exception);