diff options
author | 2008-12-30 10:49:42 -0500 | |
---|---|---|
committer | 2008-12-30 10:49:42 -0500 | |
commit | 493ec594ea29706c85196d1b616ab28ed3da6797 (patch) | |
tree | 5fb21e9104e07f932bbb5571766def02f7ab0813 /src/jscomp.sml | |
parent | 4a3a2b6a133f11287b5fadd026add01eed51e2b8 (diff) |
Setting a source server-side
Diffstat (limited to 'src/jscomp.sml')
-rw-r--r-- | src/jscomp.sml | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/jscomp.sml b/src/jscomp.sml index f7ef6927..8b874289 100644 --- a/src/jscomp.sml +++ b/src/jscomp.sml @@ -121,6 +121,13 @@ fun jsExp mode outer = (str "ERROR", st)) val strcat = strcat loc + + fun quoteExp (t : typ) e = + case #1 t of + TSource => strcat [str "s", + (EFfiApp ("Basis", "htmlifyInt", [e]), loc)] + | _ => (EM.errorAt loc "Don't know how to embed type in JavaScript"; + str "ERROR") in case #1 e of EPrim (Prim.String s) => @@ -130,6 +137,7 @@ fun jsExp mode outer = "\\047" else "'" + | #"\"" => "\\\"" | #"<" => if mode = Script then "<" @@ -143,7 +151,11 @@ fun jsExp mode outer = if n < inner then (str ("uwr" ^ var n), st) else - (str ("uwo" ^ var n), st) + let + val n = n - inner + in + (quoteExp (List.nth (outer, n)) (ERel n, loc), st) + end | ENamed _ => raise Fail "Named" | ECon (_, pc, NONE) => (patCon pc, st) | ECon (_, pc, SOME e) => |