From e8549627b12b9a84ccf70781ad13c78cd01d2294 Mon Sep 17 00:00:00 2001 From: raichoo Date: Sat, 13 Dec 2014 14:14:46 +0100 Subject: [PATCH] javascript: better unicode support --- src/IRTS/CodegenJavaScript.hs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/IRTS/CodegenJavaScript.hs b/src/IRTS/CodegenJavaScript.hs index 033c93167..cde53c583 100644 --- a/src/IRTS/CodegenJavaScript.hs +++ b/src/IRTS/CodegenJavaScript.hs @@ -495,13 +495,16 @@ translateChar ch | '\\' <- ch = "\\\\" | '\"' <- ch = "\\\"" | '\'' <- ch = "\\\'" - | ch `elem` asciiTab = "\\u00" ++ fill (showHex (ord ch) "") + | ch `elem` asciiTab = "\\u" ++ fill (showHex (ord ch) "") + | ord ch > 255 = "\\u" ++ fill (showHex (ord ch) "") | otherwise = [ch] where fill :: String -> String - fill s = if length s == 1 - then '0' : s - else s + fill s = case length s of + 1 -> "000" ++ s + 2 -> "00" ++ s + 3 -> "0" ++ s + _ -> s asciiTab = ['\NUL', '\SOH', '\STX', '\ETX', '\EOT', '\ENQ', '\ACK', '\BEL',