on master help sign in
Get rid of `return;` in Gen/JS/Builder

No situation where a function returns undefined in generated Elm code

commitbadd0cffa52a22c5c9b7c4a9f4c622311e9bff9a authorEvan Czaplicki <evancz@users.noreply.github.com> dateThu 30 May 2019, 11:08 (7 years ago) parent0d979b3
3 files changed+7−10
compiler/src/Generate/JavaScript.hs+1−1 compiler/src/Generate/JavaScript/Builder.hs+2−5 compiler/src/Generate/JavaScript/Expression.hs+4−4
compiler/src/Generate/JavaScript.hs+1−1
@@ -286,7 +286,7 @@ generateRealCycle home (name, _) =
286286 JS.Block
287287 [ JS.Var realName (JS.Call (JS.Ref safeName) [])
288288 , JS.ExprStmt $ JS.Assign (JS.LRef safeName) $
289− JS.Function Nothing [] [ JS.Return (Just (JS.Ref realName)) ]
289+ JS.Function Nothing [] [ JS.Return (JS.Ref realName) ]
290290 ]
291291
292292
compiler/src/Generate/JavaScript/Builder.hs+2−5
@@ -69,7 +69,7 @@ data Stmt
6969 | Labelled Name Stmt
7070 | Try Stmt Name Stmt
7171 | Throw Expr
72− | Return (Maybe Expr)
72+ | Return Expr
7373 | Var Name Expr
7474 | Vars [(Name, Expr)]
7575 | FunctionStmt Name [Name] [Stmt]
@@ -219,10 +219,7 @@ fromStmt indent statement =
219219 Throw expr ->
220220 indent <> "throw " <> snd (fromExpr indent Whatever expr) <> ";"
221221
222− Return Nothing ->
223− indent <> "return;\n"
224−
225− Return (Just expr) ->
222+ Return expr ->
226223 indent <> "return " <> snd (fromExpr indent Whatever expr) <> ";\n"
227224
228225 Var name expr ->
compiler/src/Generate/JavaScript/Expression.hs+4−4
@@ -137,7 +137,7 @@ generate mode expression =
137137
138138 Opt.Accessor field ->
139139 JsExpr $ JS.Function Nothing [JsName.dollar]
140− [ JS.Return $ Just $
140+ [ JS.Return $
141141 JS.Access (JS.Ref JsName.dollar) (generateField mode field)
142142 ]
143143
@@ -210,7 +210,7 @@ codeToExpr code =
210210 JsExpr expr ->
211211 expr
212212
213− JsBlock [ JS.Return (Just expr) ] ->
213+ JsBlock [ JS.Return expr ] ->
214214 expr
215215
216216 JsBlock stmts ->
@@ -224,7 +224,7 @@ codeToStmtList code =
224224 stmts
225225
226226 JsExpr expr ->
227− [ JS.Return (Just expr) ]
227+ [ JS.Return expr ]
228228
229229 JsBlock stmts ->
230230 stmts
@@ -237,7 +237,7 @@ codeToStmt code =
237237 JS.Block stmts
238238
239239 JsExpr expr ->
240− JS.Return (Just expr)
240+ JS.Return expr
241241
242242 JsBlock [stmt] ->
243243 stmt