From afe50be2ed547e0b8d83200bbec77b6037334678 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 13 Jun 2009 14:29:36 -0400 Subject: inside ; fix Specialize bug with datatype decls generating other mutually-recursive datatype decls --- lib/js/urweb.js | 23 ++++++++++++++--------- lib/ur/basis.urs | 4 ++-- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/js/urweb.js b/lib/js/urweb.js index efd94bb9..60de8744 100644 --- a/lib/js/urweb.js +++ b/lib/js/urweb.js @@ -278,15 +278,20 @@ function dyn(s) { for (var ls = x.closures; ls; ls = ls.next) freeClosure(ls.data); - var spans = x.getElementsByTagName("span"); - for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - span.dead = true; - for (var ls = span.sources; ls; ls = ls.next) - ls.data.dyns = remove(span, ls.data.dyns); - for (var ls = span.closures; ls; ls = ls.next) - freeClosure(ls.data); - } + var doKind = function(kind) { + var arr = x.getElementsByTagName(kind); + for (var i = 0; i < arr.length; ++i) { + var span = arr[i]; + span.dead = true; + for (var ls = span.sources; ls; ls = ls.next) + ls.data.dyns = remove(span, ls.data.dyns); + for (var ls = span.closures; ls; ls = ls.next) + freeClosure(ls.data); + } + }; + + doKind("span"); + doKind("tbody"); var cls = {v : null}; x.innerHTML = flatten(cls, v); diff --git a/lib/ur/basis.urs b/lib/ur/basis.urs index 50909804..e4f4c28a 100644 --- a/lib/ur/basis.urs +++ b/lib/ur/basis.urs @@ -530,8 +530,8 @@ type url val bless : string -> url val checkUrl : string -> option url -val dyn : use ::: {Type} -> bind ::: {Type} -> unit - -> tag [Signal = signal (xml body use bind)] body [] use bind +val dyn : ctx ::: {Unit} -> use ::: {Type} -> bind ::: {Type} -> [ctx ~ body] => unit + -> tag [Signal = signal (xml (body ++ ctx) use bind)] (body ++ ctx) [] use bind val head : unit -> tag [] html head [] [] val title : unit -> tag [] head [] [] [] -- cgit v1.2.3