Mercurial > urweb
diff src/jscomp.sml @ 794:dc3fc3f3b834
Improving/reordering Unpoly and Especialize; pathmaps
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 14 May 2009 08:13:54 -0400 |
parents | a28982de5645 |
children | 83875a9eb9b8 |
line wrap: on
line diff
--- a/src/jscomp.sml Tue May 12 20:15:11 2009 -0400 +++ b/src/jscomp.sml Thu May 14 08:13:54 2009 -0400 @@ -400,6 +400,8 @@ else s + val foundJavaScript = ref false + fun jsExp mode skip outer = let val len = length outer @@ -662,8 +664,10 @@ let val args = case (m, x, args) of - ("Basis", "new_client_source", [(EJavaScript (_, e, _), _)]) => [e] - | ("Basis", "set_client_source", [e1, (EJavaScript (_, e2, _), _)]) => [e1, e2] + ("Basis", "new_client_source", [(EJavaScript (_, e, _), _)]) => + (foundJavaScript := true; [e]) + | ("Basis", "set_client_source", [e1, (EJavaScript (_, e2, _), _)]) => + (foundJavaScript := true; [e1, e2]) | _ => args val name = case Settings.jsFunc (m, x) of @@ -871,12 +875,15 @@ str ")"], st) end - | EJavaScript (Source _, _, SOME _) => (e, st) + | EJavaScript (Source _, _, SOME _) => + (foundJavaScript := true; + (e, st)) | EJavaScript (_, _, SOME e) => - (strcat [str "cs(function(){return ", - e, - str "})"], - st) + (foundJavaScript := true; + (strcat [str "cs(function(){return ", + e, + str "})"], + st)) | EClosure _ => unsupported "EClosure" | EQuery _ => unsupported "Query" @@ -888,6 +895,7 @@ let val (e, st) = jsE inner (e, st) in + foundJavaScript := true; (strcat [str "cs(function(){return ", e, str "})"], @@ -995,7 +1003,8 @@ in case e of EJavaScript (m, orig, NONE) => - doCode m 0 env orig orig + (foundJavaScript := true; + doCode m 0 env orig orig) | _ => (e, st) end, decl = fn (_, e, st) => (e, st), @@ -1031,9 +1040,15 @@ NONE => String.concat (rev acc) | SOME line => lines (line :: acc) val lines = lines [] + + val script = + if !foundJavaScript then + lines ^ String.concat (rev (#script st)) + else + "" in TextIO.closeIn inf; - (DJavaScript (lines ^ String.concat (rev (#script st))), ErrorMsg.dummySpan) :: ds + (DJavaScript script, ErrorMsg.dummySpan) :: ds end end