on master help sign in
Generate `main` values using the new format
commitbfb4f2da882cb25d2b39d029659c9f8f5b083023 authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 12 Jul 2016, 23:26 (10 years ago) parente9af107
1 file changed+13−13
src/Generate/JavaScript/Expression.hs+13−13
src/Generate/JavaScript/Expression.hs+13−13
@@ -233,19 +233,19 @@ generateCode expr =
233233
234234generateProgram :: Expr.Main Type.Canonical -> Opt.Expr -> State Int Code
235235generateProgram kind body =
236− let
237− gen fields =
238− generateCode $ Record (("main", body) : fields)
239− in
240− case kind of
241− Expr.VDom ->
242− gen []
243−
244− Expr.NoFlags ->
245− gen []
246−
247− Expr.Flags tipe ->
248− gen [ ("flags", Foreign.decode tipe) ]
236+ case kind of
237+ Expr.VDom ->
238+ do html <- generateJsExpr body
239+ jsExpr (Var.coreNative "Platform" "htmlToProgram" <| html)
240+
241+ Expr.NoFlags ->
242+ do almostProgram <- generateJsExpr body
243+ jsExpr (almostProgram `call` [])
244+
245+ Expr.Flags tipe ->
246+ do almostProgram <- generateJsExpr body
247+ flagDecoder <- generateJsExpr (Foreign.decode tipe)
248+ jsExpr (almostProgram <| flagDecoder)
249249
250250
251251