@@ -14,23 +14,12 @@
14-----------------------------------------------------------------------------
14-----------------------------------------------------------------------------
16module Language.PureScript.Optimizer.Unused (
16module Language.PureScript.Optimizer.Unused (
17− removeUnusedVariables,
18 removeCodeAfterReturnStatements
17 removeCodeAfterReturnStatements
21import Language.PureScript.CodeGen.JS.AST
20import Language.PureScript.CodeGen.JS.AST
22import Language.PureScript.Optimizer.Common
21import Language.PureScript.Optimizer.Common
24−removeUnusedVariables :: JS -> JS
25−removeUnusedVariables = everywhereOnJS (removeFromBlock withBlock)
27− withBlock :: [JS] -> [JS]
28− withBlock sts = go sts sts
29− go :: [JS] -> [JS] -> [JS]
31− go sts (JSVariableIntroduction var _ : rest) | not (any (isUsed var) sts) = go sts rest
32− go sts (s : rest) = s : go sts rest
34removeCodeAfterReturnStatements :: JS -> JS
23removeCodeAfterReturnStatements :: JS -> JS
35removeCodeAfterReturnStatements = everywhereOnJS (removeFromBlock go)
24removeCodeAfterReturnStatements = everywhereOnJS (removeFromBlock go)