Safe Haskell | None |
---|---|
Language | Haskell98 |
This module optimizes code in the simplified-Javascript intermediate representation.
The following optimizations are supported:
- Collapsing nested blocks
- Tail call elimination
- Inlining of (>>=) and ret for the Eff monad
- Removal of unnecessary thunks
- Eta conversion
- Inlining variables
- Inline Prelude.($), Prelude.(#), Prelude.(++), Prelude.(!!)
- Inlining primitive Javascript operators
- optimize :: (MonadReader Options m, MonadSupply m) => JS -> m JS
Documentation
optimize :: (MonadReader Options m, MonadSupply m) => JS -> m JS Source #
Apply a series of optimizer passes to simplified Javascript code