@@ -24,12 +24,14 @@ import Language.PureScript.CodeGen.JS.AST
24import Language.PureScript.Optimizer.Common
24import Language.PureScript.Optimizer.Common
26removeUnusedVariables :: JS -> JS
26removeUnusedVariables :: JS -> JS
27−removeUnusedVariables = everywhere (mkT $ removeFromBlock go)
27+removeUnusedVariables = everywhere (mkT $ removeFromBlock withBlock)
29+ withBlock :: [JS] -> [JS]
30+ withBlock sts = go sts sts
29− go :: [JS] -> [JS]
31+ go :: [JS] -> [JS] -> [JS]
30− go [] = []
32+ go _ [] = []
31− go (JSVariableIntroduction var _ : sts) | not (isUsed var sts) = go sts
33+ go sts (JSVariableIntroduction var _ : rest) | not (isUsed var sts) = go sts rest
32− go (s:sts) = s : go sts
34+ go sts (s : rest) = s : go sts rest
34removeCodeAfterReturnStatements :: JS -> JS
36removeCodeAfterReturnStatements :: JS -> JS
35removeCodeAfterReturnStatements = everywhere (mkT $ removeFromBlock go)
37removeCodeAfterReturnStatements = everywhere (mkT $ removeFromBlock go)