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)