on master help sign in
Generate definitions for PROD versions of enums and boxes
a31f730Evan Czaplicki
src/Generate/JavaScript.hs+20−12
@@ -300,13 +300,17 @@ addChunk mode builder chunk =
300
300
301
301
302generateEnum :: Name.Mode -> Opt.Global -> N.Name -> Index.ZeroBased -> JS.Stmt
302generateEnum :: Name.Mode -> Opt.Global -> N.Name -> Index.ZeroBased -> JS.Stmt
303−generateEnum mode global ctorName index =
303+generateEnum mode (Opt.Global home name) ctorName index =
304+ let
305+ definition =
304− case mode of
306+ case mode of
305− Name.Debug _ ->
307+ Name.Debug _ ->
306− var global (Expr.generateCtor mode ctorName index 0)
308+ Expr.codeToExpr (Expr.generateCtor mode ctorName index 0)
307
309
308− Name.Prod _ _ ->
310+ Name.Prod _ _ ->
309− JS.EmptyStmt
311+ JS.Int (Index.toMachine index)
312+ in
313+ JS.Var [ (Name.fromGlobal home name, Just definition) ]
310
314
311
315
312
316
@@ -314,13 +318,17 @@ generateEnum mode global ctorName index =
314
318
315
319
316generateBox :: Name.Mode -> Opt.Global -> N.Name -> JS.Stmt
320generateBox :: Name.Mode -> Opt.Global -> N.Name -> JS.Stmt
317−generateBox mode global ctorName =
321+generateBox mode (Opt.Global home name) ctorName =
322+ let
323+ definition =
318− case mode of
324+ case mode of
319− Name.Debug _ ->
325+ Name.Debug _ ->
320− var global (Expr.generateCtor mode ctorName Index.first 1)
326+ Expr.codeToExpr (Expr.generateCtor mode ctorName Index.first 1)
321
327
322− Name.Prod _ _ ->
328+ Name.Prod _ _ ->
323− JS.EmptyStmt
329+ JS.Ref (Name.fromGlobal ModuleName.basics N.identity)
330+ in
331+ JS.Var [ (Name.fromGlobal home name, Just definition) ]
324
332
325
333
326
334