in src/mockRuntime.ts [498:534]
private findNextStatement(reverse: boolean, stepEvent?: string): boolean {
for (let ln = this.currentLine; reverse ? ln >= 0 : ln < this.sourceLines.length; reverse ? ln-- : ln++) {
// is there a source breakpoint?
const breakpoints = this.breakPoints.get(this._sourceFile);
if (breakpoints) {
const bps = breakpoints.filter(bp => bp.line === ln);
if (bps.length > 0) {
// send 'stopped' event
this.sendEvent('stopOnBreakpoint');
// the following shows the use of 'breakpoint' events to update properties of a breakpoint in the UI
// if breakpoint is not yet verified, verify it now and send a 'breakpoint' update event
if (!bps[0].verified) {
bps[0].verified = true;
this.sendEvent('breakpointValidated', bps[0]);
}
this.currentLine = ln;
return true;
}
}
const line = this.getLine(ln);
if (line.length > 0) {
this.currentLine = ln;
break;
}
}
if (stepEvent) {
this.sendEvent(stepEvent);
return true;
}
return false;
}