diff lib/js/urweb.js @ 1890:abb0e95dcaa1

Fix more of client-side error handlers
author Adam Chlipala <adam@chlipala.net>
date Thu, 14 Nov 2013 06:36:36 -0500
parents c40ed80be943
children b6aee1d5b9b1
line wrap: on
line diff
--- a/lib/js/urweb.js	Thu Nov 14 06:16:58 2013 -0500
+++ b/lib/js/urweb.js	Thu Nov 14 06:36:36 2013 -0500
@@ -376,15 +376,19 @@
             alert(kind + ": " + arg);
         for (; ls; ls = ls.next)
             try {
-                exec({c:"a", f:{c:"a", f:{c:"c", v:ls.data}, x:{c:"c", v:arg}}, x:{c:"c", v:null}});
+                exec({c:"a", f:{c:"a", f:ls.data, x:{c:"c", v:arg}}, x:{c:"c", v:null}});
             } catch (v) { }
     }
 }
 
 var errorHandlers = null;
 
+function flift0(v) {
+    return {c:"c", v:v};
+}
+
 function onError(f) {
-    errorHandlers = cons(f, errorHandlers);
+    errorHandlers = cons(flift0(f), errorHandlers);
 }
 
 function er(s) {
@@ -395,7 +399,7 @@
 var failHandlers = null;
 
 function onFail(f) {
-    failHandlers = cons(f, failHandlers);
+    failHandlers = cons(flift0(f), failHandlers);
 }
 
 function doExn(v) {
@@ -434,7 +438,7 @@
 var serverHandlers = null;
 
 function onServerError(f) {
-    serverHandlers = cons(f, serverHandlers);
+    serverHandlers = cons(flift0(f), serverHandlers);
 }
 
 function servErr(s) {