diff src/monoize.sml @ 694:7ea0df9e56b6

spawn
author Adam Chlipala <adamc@hcoop.net>
date Sat, 04 Apr 2009 14:55:36 -0400
parents a3ddf05fb3e3
children 500e93aa436f
line wrap: on
line diff
--- a/src/monoize.sml	Sat Apr 04 14:03:39 2009 -0400
+++ b/src/monoize.sml	Sat Apr 04 14:55:36 2009 -0400
@@ -1043,6 +1043,13 @@
                  fm)
             end
 
+          | L.EFfiApp ("Basis", "spawn", [e]) =>
+            let
+                val (e, fm) = monoExp (env, st, fm) e
+            in
+                ((L'.EApp (e, (L'.ERecord [], loc)), loc), fm)
+            end
+
           | L.EApp ((L.ECApp ((L.ECApp ((L.EFfi ("Basis", "return"), _), _), _), t), _),
                     (L.EFfi ("Basis", "signal_monad"), _)) =>
             let
@@ -2005,7 +2012,12 @@
                                          end
                     in
                         normal ("body",
-                                SOME (L'.EFfiApp ("Basis", "get_settings", [onload]), loc),
+                                SOME (L'.EStrcat ((L'.EPrim (Prim.String " onload='"), loc),
+                                                  (L'.EStrcat ((L'.EFfiApp ("Basis", "get_settings",
+                                                                            [(L'.ERecord [], loc)]), loc),
+                                                               (L'.EStrcat (onload,
+                                                                            (L'.EPrim (Prim.String "'"),
+                                                                             loc)), loc)), loc)), loc),
                                 SOME (L'.EFfiApp ("Basis", "get_script", [(L'.ERecord [], loc)]), loc))
                     end