@@ -167,8 +167,9 @@ function debugModule(module, runtime) {
167167 function setPaused() {
168168 programPaused = true;
169169 clearAsyncCallbacks();
170− tracePath.stopRecording();
171170 pauseTime = Date.now();
171+ tracePath.stopRecording();
172+ preventInputEvents();
172173 }
173174
174175 function setContinue(position) {
@@ -190,7 +191,8 @@ function debugModule(module, runtime) {
190191 recordedEvents = recordedEvents.slice(0, position);
191192 tracePath.clearTracesAfter(position);
192193 runtime.debuggerStatus.eventCounter = position;
193− executeCallbacks(asyncCallbacks);
194+ executeCallbacks(asyncCallbacks);
195+ permitInputEvents();
194196
195197 tracePath.startRecording();
196198 }
@@ -199,6 +201,42 @@ function debugModule(module, runtime) {
199201 return programPaused;
200202 }
201203
204+ function preventInputEvents(){
205+ var events =
206+ [ "click", "mousemove", "mouseup", "mousedown", "mouseclick"
207+ , "keydown", "keypress", "keyup", "touchstart", "touchend"
208+ , "touchcancel", "touchleave", "touchmove", "pointermove"
209+ , "pointerdown", "pointerup", "pointerover", "pointerout"
210+ , "pointerenter", "pointerleave", "pointercancel"
211+ ];
212+
213+ var gobbler = function(e) {
214+ var evt = e ? e : window.event;
215+ if (evt.stopPropagation) evt.stopPropagation();
216+ if (evt.cabcelBubble !== null) evt.cabcelBubble = true;
217+ if (evt.preventDefault) evt.preventDefault();
218+ return false;
219+ };
220+
221+ var blackHole = document.createElement("div");
222+ blackHole.id = "elmEventGobbler";
223+ blackHole.style.position = "absolute";
224+ blackHole.style.top = "0px";
225+ blackHole.style.left = "0px";
226+ blackHole.style.width = "100%";
227+ blackHole.style.height = "100%";
228+
229+ for (var i = events.length; i-- ;) {
230+ blackHole.addEventListener(events[i], gobbler, true);
231+ }
232+ runtime.node.appendChild(blackHole);
233+ }
234+
235+ function permitInputEvents(){
236+ var blackHole = document.getElementById("elmEventGobbler");
237+ blackHole.parentNode.removeChild(blackHole);
238+ }
239+
202240 return {
203241 debuggedModule: debuggedModule,
204242 signalGraphNodes: signalGraphNodes,