Mercurial > urweb
diff src/monoize.sml @ 847:0f7e2cca6d9b
<dyn> inside <table>; fix Specialize bug with datatype decls generating other mutually-recursive datatype decls
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 13 Jun 2009 14:29:36 -0400 |
parents | 0d30e6338c65 |
children | 3c7b48040dcf |
line wrap: on
line diff
--- a/src/monoize.sml Tue Jun 09 18:11:59 2009 -0400 +++ b/src/monoize.sml Sat Jun 13 14:29:36 2009 -0400 @@ -2595,11 +2595,24 @@ | "dyn" => (case attrs of [("Signal", e, _)] => - ((L'.EStrcat - ((L'.EPrim (Prim.String "<span><script type=\"text/javascript\">dyn("), loc), - (L'.EStrcat ((L'.EJavaScript (L'.Script, e), loc), - (L'.EPrim (Prim.String ")</script></span>"), loc)), loc)), loc), - fm) + let + val inTable = case targs of + (L.CRecord (_, ctx), _) :: _ => + List.exists (fn ((L.CName "Table", _), _) => true + | _ => false) ctx + | _ => false + + val tag = if inTable then + "tbody" + else + "span" + in + ((L'.EStrcat + ((L'.EPrim (Prim.String ("<" ^ tag ^ "><script type=\"text/javascript\">dyn(")), loc), + (L'.EStrcat ((L'.EJavaScript (L'.Script, e), loc), + (L'.EPrim (Prim.String (")</script></" ^ tag ^ ">")), loc)), loc)), loc), + fm) + end | _ => raise Fail "Monoize: Bad dyn attributes") | "submit" => normal ("input type=\"submit\"", NONE, NONE)