on master help sign in
trace back, keep your path, continue, lose your future history
180aff3Michael James
runtime/Debugger.js+10−4
@@ -199,6 +199,16 @@ function debuggerInit(debugModule, runtime, hotSwapState /* =undefined */) {
199 function continueProgram() {
199 function continueProgram() {
200 if (debugModule.getPaused())
200 if (debugModule.getPaused())
201 {
201 {
202+ if(eventCounter === 0) {
203+ restartProgram();
204+ return;
205+ }
206+ resetProgram();
207+ var index = eventCounter;
208+ eventCounter = 0;
209+ debugModule.tracePath.clearTraces();
210+ debugModule.tracePath.startRecording();
211+ stepTo(index);
202 debugModule.setPausedAt(false, eventCounter);
212 debugModule.setPausedAt(false, eventCounter);
203 }
213 }
204 }
214 }
@@ -216,11 +226,8 @@ function debuggerInit(debugModule, runtime, hotSwapState /* =undefined */) {
216 if (index < eventCounter) {
226 if (index < eventCounter) {
217 resetProgram();
227 resetProgram();
218 eventCounter = 0;
228 eventCounter = 0;
219− debugModule.tracePath.clearTraces();
220 }
229 }
221
230
222− debugModule.tracePath.startRecording();
223−
224 assert(index >= eventCounter, "index must be bad");
231 assert(index >= eventCounter, "index must be bad");
225 while (eventCounter < index) {
232 while (eventCounter < index) {
226 var nextEvent = debugModule.getRecordedEventAt(eventCounter);
233 var nextEvent = debugModule.getRecordedEventAt(eventCounter);
@@ -229,7 +236,6 @@ function debuggerInit(debugModule, runtime, hotSwapState /* =undefined */) {
229 eventCounter += 1;
236 eventCounter += 1;
230 }
237 }
231 assert(eventCounter == index, "while loop didn't work");
238 assert(eventCounter == index, "while loop didn't work");
232− debugModule.tracePath.stopRecording();
233 }
239 }
234
240
235 function getMaxSteps() {
241 function getMaxSteps() {