diff options
Diffstat (limited to 'lib/js')
-rw-r--r-- | lib/js/urweb.js | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js index 68e7979d..222a8322 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -731,6 +731,8 @@ function flattenLocal(s) { // Dynamic tree management function populate(node) { + if (node.dead) return; + var s = node.signal; var oldSources = node.sources; try { @@ -760,8 +762,7 @@ function sv(s, v) { s.data = v; for (var ls = s.dyns; ls; ls = ls.next) - if (!ls.dead) - populate(ls.data); + populate(ls.data); } } function sg(s) { @@ -1099,12 +1100,18 @@ function active(s) { function input(x, s, recreate, type, name) { if (name) x.name = name; if (type) x.type = type; - x.dead = false; - x.signal = ss(s); - x.sources = null; - x.recreate = recreate(x); addNode(x); - populate(x); + + var sc = document.createElement("script"); + sc.dead = false; + sc.signal = ss(s); + sc.sources = null; + sc.recreate = recreate(x); + + if (x.parentNode) + x.parentNode.insertBefore(sc, x); + + populate(sc); return x; } |