Mercurial > urweb
comparison src/jscomp.sml @ 1112:7a31e0cf25e9
Proper C-side deserialization; Shake.sliceDb
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 03 Jan 2010 12:47:27 -0500 |
parents | e1d738870086 |
children | 51e596feec37 |
comparison
equal
deleted
inserted
replaced
1111:e1d738870086 | 1112:7a31e0cf25e9 |
---|---|
867 | EClosure _ => unsupported "EClosure" | 867 | EClosure _ => unsupported "EClosure" |
868 | EQuery _ => unsupported "Query" | 868 | EQuery _ => unsupported "Query" |
869 | EDml _ => unsupported "DML" | 869 | EDml _ => unsupported "DML" |
870 | ENextval _ => unsupported "Nextval" | 870 | ENextval _ => unsupported "Nextval" |
871 | ESetval _ => unsupported "Nextval" | 871 | ESetval _ => unsupported "Nextval" |
872 | EReturnBlob _ => unsupported "EUnurlify" | 872 | EReturnBlob _ => unsupported "EReturnBlob" |
873 | ERedirect _ => unsupported "ERedirect" | 873 | ERedirect _ => unsupported "ERedirect" |
874 | 874 | EUnurlify (_, _, true) => unsupported "EUnurlify" |
875 | EUnurlify (e, t) => | 875 |
876 | EUnurlify (e, t, false) => | |
876 let | 877 let |
877 val (e, st) = jsE inner (e, st) | 878 val (e, st) = jsE inner (e, st) |
878 val (e', st) = unurlifyExp loc (t, st) | 879 val (e', st) = unurlifyExp loc (t, st) |
879 in | 880 in |
880 (strcat [str ("{c:\"f\",f:\"unurlify\",a:cons({c:\"c\",v:function(s){var t=s.split(\"/\");var i=0;return " | 881 (strcat [str ("{c:\"f\",f:\"unurlify\",a:cons({c:\"c\",v:function(s){var t=s.split(\"/\");var i=0;return " |
1160 val (e2, st) = exp outer (e2, st) | 1161 val (e2, st) = exp outer (e2, st) |
1161 in | 1162 in |
1162 ((ESetval (e1, e2), loc), st) | 1163 ((ESetval (e1, e2), loc), st) |
1163 end | 1164 end |
1164 | 1165 |
1165 | EUnurlify (e, t) => | 1166 | EUnurlify (e, t, b) => |
1166 let | 1167 let |
1167 val (e, st) = exp outer (e, st) | 1168 val (e, st) = exp outer (e, st) |
1168 in | 1169 in |
1169 ((EUnurlify (e, t), loc), st) | 1170 ((EUnurlify (e, t, b), loc), st) |
1170 end | 1171 end |
1171 | 1172 |
1172 | EJavaScript (m, e') => | 1173 | EJavaScript (m, e') => |
1173 (foundJavaScript := true; | 1174 (foundJavaScript := true; |
1174 jsExp m outer (e', st) | 1175 jsExp m outer (e', st) |