# HG changeset patch # User Adam Chlipala # Date 1242311471 14400 # Node ID 83875a9eb9b81f018109c4f55a32ad1701a50470 # Parent 2c463eee89fa3162e19970f100157e67cf7b28e5 Improvements while working on Graftid diff -r 2c463eee89fa -r 83875a9eb9b8 lib/js/urweb.js --- a/lib/js/urweb.js Thu May 14 09:33:48 2009 -0400 +++ b/lib/js/urweb.js Thu May 14 10:31:11 2009 -0400 @@ -34,7 +34,9 @@ whine("Pattern match failure"); } -function runHandlers(ls, arg) { +function runHandlers(kind, ls, arg) { + if (ls == null) + alert(kind + ": " + arg); for (; ls; ls = ls.next) try { ls.data(arg)(null); @@ -48,7 +50,7 @@ } function er(s) { - runHandlers(errorHandlers, s); + runHandlers("Error", errorHandlers, s); throw {uw_error: s}; } @@ -61,7 +63,7 @@ function doExn(v) { if (v == null || v.uw_error == null) { var s = (v == null ? "null" : v.toString()); - runHandlers(failHandlers, s); + runHandlers("Fail", failHandlers, s); } } @@ -72,7 +74,7 @@ } function discon() { - runHandlers(disconnectHandlers, null); + runHandlers("Disconnect", disconnectHandlers, null); } var connectHandlers = null; @@ -82,7 +84,7 @@ } function conn() { - runHandlers(connectHandlers, null); + runHandlers("Connect", connectHandlers, null); } var serverHandlers = null; @@ -92,7 +94,7 @@ } function servErr(s) { - runHandlers(serverHandlers, s); + runHandlers("Server", serverHandlers, s); } diff -r 2c463eee89fa -r 83875a9eb9b8 src/jscomp.sml --- a/src/jscomp.sml Thu May 14 09:33:48 2009 -0400 +++ b/src/jscomp.sml Thu May 14 10:31:11 2009 -0400 @@ -824,11 +824,11 @@ val (e, st) = jsE inner (e', st) in - (strcat (str "(" + (strcat (str "(d0=" + :: e + :: str "," :: List.revAppend (cases, - [str "d0=", - e, - str ",c0())"])), st) + [str "c0())"])), st) end | EStrcat (e1, e2) => diff -r 2c463eee89fa -r 83875a9eb9b8 src/settings.sml --- a/src/settings.sml Thu May 14 09:33:48 2009 -0400 +++ b/src/settings.sml Thu May 14 10:31:11 2009 -0400 @@ -144,7 +144,11 @@ ("onFail", "onFail"), ("onConnectFail", "onConnectFail"), ("onDisconnect", "onDisconnect"), - ("onServerError", "onServerError")] + ("onServerError", "onServerError"), + ("attrifyString", "escape"), + ("attrifyInt", "ts"), + ("attrifyFloat", "ts"), + ("attrifyBool", "bs")] val jsFuncs = ref jsFuncsBase fun setJsFuncs ls = jsFuncs := foldl (fn ((k, v), m) => M.insert (m, k, v)) jsFuncsBase ls fun jsFunc x = M.find (!jsFuncs, x)