@@ -32,6 +32,7 @@ function debugModule(module, runtime) {
32 var programPaused = false;
32 var programPaused = false;
33 var recordedEvents = [];
33 var recordedEvents = [];
34 var asyncCallbacks = [];
34 var asyncCallbacks = [];
35+ var watchTracker = Elm.Native.Debug.make(runtime).watchTracker;
36 function wrapNotify(id, v) {
37 function wrapNotify(id, v) {
37 var timestep = Date.now();
38 var timestep = Date.now();
@@ -63,6 +64,7 @@ function debugModule(module, runtime) {
65 function recordEvent(id, v, timestep) {
66 function recordEvent(id, v, timestep) {
67+ watchTracker.pushFrame();
66 recordedEvents.push({ id:id, value:v, timestep:timestep });
68 recordedEvents.push({ id:id, value:v, timestep:timestep });
@@ -143,7 +145,8 @@ function debugModule(module, runtime) {
143 loadRecordedEvents: loadRecordedEvents,
145 loadRecordedEvents: loadRecordedEvents,
144 getPaused: getPaused,
146 getPaused: getPaused,
145 setPaused: setPaused,
147 setPaused: setPaused,
146− tracePath: tracePath
148+ tracePath: tracePath,
149+ watchTracker: watchTracker,
@@ -158,6 +161,7 @@ function debuggerInit(debugModule, runtime, hotSwapState /* =undefined */) {
159 function restartProgram() {
162 function restartProgram() {
160 resetProgram();
163 resetProgram();
164+ debugModule.watchTracker.clear();
161 debugModule.tracePath.clearTraces();
165 debugModule.tracePath.clearTraces();
162 debugModule.clearRecordedEvents();
166 debugModule.clearRecordedEvents();
163 debugModule.setPaused(false);
167 debugModule.setPaused(false);
@@ -262,6 +266,7 @@ function debuggerInit(debugModule, runtime, hotSwapState /* =undefined */) {
262 getHotSwapState: getHotSwapState,
266 getHotSwapState: getHotSwapState,
263 dispose: dispose,
267 dispose: dispose,
264 allNodes: debugModule.moduleNodes,
268 allNodes: debugModule.moduleNodes,
269+ watchTracker: debugModule.watchTracker,
265 mainNode: debugModule.moduleInstance.main
270 mainNode: debugModule.moduleInstance.main