adamc@579: function callAll(ls) { adamc@579: for (; ls; ls = ls.next) adamc@579: ls.v(); adamc@579: } adamc@574: adamc@579: function sc(v) { return {v : v, h : null} } adamc@579: function sv(s, v) { s.v = v; callAll(s.h); } adamc@579: adamc@579: function ss(s) { return s } adamc@579: function sr(v) { return {v : v, h : null} } adamc@579: function sb(x,y) { return {v : y(x.v).v, h : null} } adamc@571: adamc@571: function dyn(s) { adamc@571: var x = document.createElement("span"); adamc@571: x.innerHTML = s.v; adamc@571: document.body.appendChild(x); adamc@579: s.h = { n : s.h, v : function() { x.innerHTML = s.v } }; adamc@571: }