@@ -152,12 +152,17 @@ jsRange e1 e2 = (++"()") . jsFunc "" $
152152binop (o:p) e1 e2
153153 | isAlpha o || '_' == o = (o:p) ++ parens e1 ++ parens e2
154154 | otherwise = case o:p of
155− ":" -> jsCons e1 e2
155+ ":" -> jsCons e1 e2
156156 "++" -> append e1 e2
157− "$" -> e1 ++ parens e2
158− "." -> jsFunc "x" . ret $ e1 ++ parens (e2 ++ parens "x")
157+ "$" -> e1 ++ parens e2
158+ "." -> jsFunc "x" . ret $ e1 ++ parens (e2 ++ parens "x")
159+ "^" -> "Math.pow(" ++ e1 ++ "," ++ e2 ++ ")"
159160 "==" -> "eq(" ++ e1 ++ "," ++ e2 ++ ")"
160161 "/=" -> "not(eq(" ++ e1 ++ "," ++ e2 ++ "))"
161− _ -> parens (e1 ++ (o:p) ++ e2)
162+ "<" -> "(compare(" ++ e1 ++ ")(" ++ e2 ++ ")[0] === 'LT')"
163+ ">" -> "(compare(" ++ e1 ++ ")(" ++ e2 ++ ")[0] === 'GT')"
164+ "<=" -> "function() { var ord = compare(" ++ e1 ++ ")(" ++ e2 ++ ")[0]; return ord === 'LT' || ord === 'EQ'; }()"
165+ ">=" -> "function() { var ord = compare(" ++ e1 ++ ")(" ++ e2 ++ ")[0]; return ord === 'GT' || ord === 'EQ'; }()"
166+ _ -> parens (e1 ++ (o:p) ++ e2)
162167
163168append e1 e2 = "Value.append" ++ parens (e1 ++ "," ++ e2)