@@ -33,13 +33,14 @@ import Language.PureScript.CodeGen.Monad
33import Language.PureScript.Options
33import Language.PureScript.Options
34import Language.PureScript.CodeGen.JS.AST as AST
34import Language.PureScript.CodeGen.JS.AST as AST
35import Language.PureScript.Types
35import Language.PureScript.Types
36+import Language.PureScript.CodeGen.Optimize
37moduleToJs :: Options -> Module -> Environment -> [JS]
38moduleToJs :: Options -> Module -> Environment -> [JS]
38moduleToJs opts (Module pname@(ProperName name) decls) env =
39moduleToJs opts (Module pname@(ProperName name) decls) env =
39 mapMaybe filterRawDecls decls ++
40 mapMaybe filterRawDecls decls ++
40 [ JSVariableIntroduction (Ident name) Nothing
41 [ JSVariableIntroduction (Ident name) Nothing
41 , JSApp (JSFunction Nothing [Ident name]
42 , JSApp (JSFunction Nothing [Ident name]
42− (JSBlock (concat $ mapMaybe (\decl -> declToJs opts (ModuleName pname) decl env) decls)))
43+ (JSBlock (concat $ mapMaybe (\decl -> fmap (map $ optimize opts) $ declToJs opts (ModuleName pname) decl env) decls)))
43 [JSAssignment (JSAssignVariable (Ident name))
44 [JSAssignment (JSAssignVariable (Ident name))
44 (JSBinary Or (JSVar (Ident name)) (JSObjectLiteral []))]
45 (JSBinary Or (JSVar (Ident name)) (JSObjectLiteral []))]