This module implements a dead store elimination (DSE) routine.
This transformation was written specifically for the needs of dest prop. Although it is perfectly sound to use it in any context that might need it, its behavior should not be changed without analyzing the interaction this will have with dest prop. Specifically, in addition to the soundness of this pass in general, dest prop needs it to satisfy two additional conditions:
- It’s idempotent, meaning that running this pass a second time immediately after running it a first time will not cause any further changes.
- This idempotence persists across dest prop’s main transform, in other words inserting any number of iterations of dest prop between the first and second application of this transform will still not cause any further changes.
- Performs the optimization on the body