on master help sign in
Flatten lets only during JavaScript generation
c1aef78Evan Czaplicki
compiler/Generate/JavaScript.hs+3−3
@@ -55,14 +55,14 @@ assign' n e = n ++ " = " ++ e
55jsModule :: MetadataModule t v -> String
55jsModule :: MetadataModule t v -> String
56jsModule modul =
56jsModule modul =
57 run $ do
57 run $ do
58− body <- toJS (defs modul)
58+ body <- toJS . fst . SD.flattenLets [] $ program modul
59 foreignImport <- mapM importEvent (foreignImports modul)
59 foreignImport <- mapM importEvent (foreignImports modul)
60 return $ concat [ setup ("Elm": names modul)
60 return $ concat [ setup ("Elm": names modul)
61 , globalAssign ("Elm." ++ modName)
61 , globalAssign ("Elm." ++ modName)
62− (jsFunc "elm" $ program body foreignImport) ]
62+ (jsFunc "elm" $ makeProgram body foreignImport) ]
63 where
63 where
64 modName = intercalate "." (names modul)
64 modName = intercalate "." (names modul)
65− program body foreignImport =
65+ makeProgram body foreignImport =
66 concat [ "\nvar " ++ usefulFuncs ++ ";"
66 concat [ "\nvar " ++ usefulFuncs ++ ";"
67 , assign "_op" "{}"
67 , assign "_op" "{}"
68 , concatMap jsImport (imports modul)
68 , concatMap jsImport (imports modul)