on master help sign in
Fix generation of JS code for pattern matching on literals
commitc2329d0affc0be3b7c6390ba7223058f4fcd2d62 authorEvan Czaplicki <info@elm-lang.org> dateFri 16 Aug 2013, 12:41 (13 years ago) parent2dc78fc
1 file changed+8−8
compiler/Generate/JavaScript.hs+8−8
compiler/Generate/JavaScript.hs+8−8
@@ -297,14 +297,14 @@ matchToJS span match =
297297clauseToJS span var (Clause value vars e) = do
298298 let vars' = map (\n -> var ++ "._" ++ show n) [0..]
299299 s <- matchToJS span $ matchSubst (zip vars vars') e
300− return $ concat [ "\ncase ", case value of
301− Right (Boolean True) -> "true"
302− Right (Boolean False) -> "false"
303− Right lit -> show lit
304− Left name -> quoted $ case List.elemIndices '.' name of
305− [] -> name
306− is -> drop (last is + 1) name
307− , ":", indent s ]
300+ pattern <- case value of
301+ Right (Boolean True) -> return "true"
302+ Right (Boolean False) -> return "false"
303+ Right lit -> toJS lit
304+ Left name -> return . quoted $ case List.elemIndices '.' name of
305+ [] -> name
306+ is -> drop (last is + 1) name
307+ return $ concat [ "\ncase ", pattern, ":", indent s ]
308308
309309jsNil = "_L.Nil"
310310jsCons e1 e2 = "_L.Cons(" ++ e1 ++ "," ++ e2 ++ ")"