@@ -17,6 +17,8 @@ Elm.Native.Signal.make = function(elm) {
19 function Input(base) {
19 function Input(base) {
20+ this.nodeType = "input";
20 this.id = Utils.guid();
22 this.id = Utils.guid();
21 this.value = base;
23 this.value = base;
22 this.kids = [];
24 this.kids = [];
@@ -31,6 +33,8 @@ Elm.Native.Signal.make = function(elm) {
33 function LiftN(update, args) {
35 function LiftN(update, args) {
36+ this.nodeType = "lift";
34 this.id = Utils.guid();
38 this.id = Utils.guid();
35 this.value = update();
39 this.value = update();
36 this.kids = [];
40 this.kids = [];
@@ -86,6 +90,8 @@ Elm.Native.Signal.make = function(elm) {
88 function Foldp(step, state, input) {
92 function Foldp(step, state, input) {
93+ this.nodeType = "foldp";
89 this.id = Utils.guid();
95 this.id = Utils.guid();
90 this.value = state;
96 this.value = state;
91 this.kids = [];
97 this.kids = [];
@@ -104,6 +110,8 @@ Elm.Native.Signal.make = function(elm) {
106 function DropIf(pred,base,input) {
112 function DropIf(pred,base,input) {
113+ this.nodeType = "drop";
107 this.id = Utils.guid();
115 this.id = Utils.guid();
108 this.value = pred(input.value) ? base : input.value;
116 this.value = pred(input.value) ? base : input.value;
109 this.kids = [];
117 this.kids = [];
@@ -116,6 +124,8 @@ Elm.Native.Signal.make = function(elm) {
118 function DropRepeats(input) {
126 function DropRepeats(input) {
127+ this.nodeType = "drop";
119 this.id = Utils.guid();
129 this.id = Utils.guid();
120 this.value = input.value;
130 this.value = input.value;
121 this.kids = [];
131 this.kids = [];
@@ -128,6 +138,8 @@ Elm.Native.Signal.make = function(elm) {
130 function dropWhen(s1,b,s2) {
140 function dropWhen(s1,b,s2) {
141+ this.nodeType = "drop";
131 var pairs = lift2( F2(function(x,y){return {x:x,y:y};}), s1, s2 );
143 var pairs = lift2( F2(function(x,y){return {x:x,y:y};}), s1, s2 );
132 var dropped = new DropIf(function(p){return p.x;},{x:true,y:b},pairs);
144 var dropped = new DropIf(function(p){return p.x;},{x:true,y:b},pairs);
133 return lift(function(p){return p.y;}, dropped);
145 return lift(function(p){return p.y;}, dropped);
@@ -139,6 +151,9 @@ Elm.Native.Signal.make = function(elm) {
141 function SampleOn(s1,s2) {
153 function SampleOn(s1,s2) {
154+ this.nodeType = "sampleOn";
155+ this.indirectParent = s1;
142 this.id = Utils.guid();
157 this.id = Utils.guid();
143 this.value = s2.value;
158 this.value = s2.value;
144 this.kids = [];
159 this.kids = [];
@@ -163,6 +178,8 @@ Elm.Native.Signal.make = function(elm) {
163 function sampleOn(s1,s2) { return new SampleOn(s1,s2); }
178 function sampleOn(s1,s2) { return new SampleOn(s1,s2); }
165 function delay(t,s) {
180 function delay(t,s) {
181+ this.nodeType = "delay";
166 var delayed = new Input(s.value);
183 var delayed = new Input(s.value);
167 var firstEvent = true;
184 var firstEvent = true;
168 function update(v) {
185 function update(v) {
@@ -174,6 +191,8 @@ Elm.Native.Signal.make = function(elm) {
176 function Merge(s1,s2) {
193 function Merge(s1,s2) {
194+ this.nodeType = "merge";
177 this.id = Utils.guid();
196 this.id = Utils.guid();
178 this.value = s1.value;
197 this.value = s1.value;
179 this.kids = [];
198 this.kids = [];