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