summaryrefslogtreecommitdiff
path: root/src/mono_opt.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 13:30:27 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-03 13:30:27 -0400
commitb6123d25d202d3cbe1f12d24dec129a90d5051ec (patch)
tree5537d58d7dba623127804b35813d7c0ec673f8b9 /src/mono_opt.sml
parent6314b4c27a14576b356258dad74607168135cb51 (diff)
Optimizing 'case' in Mono_reduce
Diffstat (limited to 'src/mono_opt.sml')
-rw-r--r--src/mono_opt.sml6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mono_opt.sml b/src/mono_opt.sml
index 81e42b56..414d9677 100644
--- a/src/mono_opt.sml
+++ b/src/mono_opt.sml
@@ -79,7 +79,7 @@ val urlifyString = String.translate (fn #" " => "+"
str ch
else
"%" ^ hexIt ch)
-
+
fun exp e =
case e of
EPrim (Prim.String s) =>
@@ -132,6 +132,10 @@ fun exp e =
ESeq ((optExp (EWrite e1, loc), loc),
(optExp (EWrite e2, loc), loc))
+ | ESeq ((EWrite (EPrim (Prim.String s1), _), loc),
+ (EWrite (EPrim (Prim.String s2), _), _)) =>
+ EWrite (EPrim (Prim.String (s1 ^ s2)), loc)
+
| EFfiApp ("Basis", "htmlifyString", [(EPrim (Prim.String s), _)]) =>
EPrim (Prim.String (htmlifyString s))
| EWrite (EFfiApp ("Basis", "htmlifyString", [(EPrim (Prim.String s), _)]), loc) =>