on master help sign in
Mario can be fully reset to initial state.
d1b3989Laszlo Pandy
libraries/Native/Signal/Time.js+1−1
@@ -24,7 +24,7 @@ Elm.Native.Time.make = function(elm) {
24 var timeoutID = 0;
24 var timeoutID = 0;
25 function f(isOn, t) {
25 function f(isOn, t) {
26 if (isOn) {
26 if (isOn) {
27− timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
27+ timeoutID = elm.runDelayed(tick(!wasOn && isOn), msPerFrame);
28 } else if (wasOn) {
28 } else if (wasOn) {
29 clearTimeout(timeoutID);
29 clearTimeout(timeoutID);
30 }
30 }
runtime/Debugger.js+22−14
@@ -60,6 +60,7 @@ function debuggerInit(module, elm) {
60 function resetProgram() {
60 function resetProgram() {
61 clearAsyncEvents();
61 clearAsyncEvents();
62 restoreProgramState(allNodes, initialProgramState);
62 restoreProgramState(allNodes, initialProgramState);
63+ redrawGraphics();
63 }
64 }
64
65
65 function startRecording() {
66 function startRecording() {
@@ -93,21 +94,24 @@ function debuggerInit(module, elm) {
93 }
94 }
94 }
95 }
95
96
96− var moduleRetValue = module(elm);
97+ function redrawGraphics() {
98+ var graphicsFoldp = moduleRetValue.main.kids[0];
99+ graphicsFoldp.recv(Date.now(), true, moduleRetValue.main.id);
100+ }
97
101
98− allNodes = flattenNodes(elm.inputs);
102+ var wrappedElm = {
99− initialProgramState = saveProgramState(allNodes);
103+ notify: wrapNotify,
104+ runDelayed: wrapRunDelayed,
105+ node: elm.node,
106+ display: elm.display,
107+ id: elm.id,
108+ addListener: elm.addListener,
109+ inputs: elm.inputs
110+ };
111+
112+ var moduleRetValue = module(wrappedElm);
100
113
101− var debugElm = {
114+ var elmDebugger = {
102− elm: {
103− notify: wrapNotify,
104− runDelayed: wrapRunDelayed,
105− node: elm.node,
106− display: elm.display,
107− id: elm.id,
108− addListener: elm.addListener,
109− inputs: elm.inputs
110− },
111 moduleRetValue: moduleRetValue,
115 moduleRetValue: moduleRetValue,
112
116
113 // debugger functions
117 // debugger functions
@@ -115,7 +119,11 @@ function debuggerInit(module, elm) {
115 stopRecording: stopRecording,
119 stopRecording: stopRecording,
116 reset: resetProgram
120 reset: resetProgram
117 };
121 };
118− return debugElm;
122+
123+ allNodes = flattenNodes(wrappedElm.inputs);
124+ initialProgramState = saveProgramState(allNodes);
125+
126+ return elmDebugger;
119};
127};
120
128
121
129