1. Use "Strict" mode when parsing JavaScript
2. Join consecutive statements with comma operator
3. Optimize property access by using dot notation instead of bracket notation.
4. Remove unreachable code
5. Remove debugging statements
6. Apply unsafe optimizations
7. Optimize if-s and conditional expressions
8. Optimize comparisons
9. Evaluate constant expressions
10. Optimize boolean expressions
11. Optimize loops
12. Remove unused variables and functions
13. Move function declarations to the top of the current scope
14. Move variable declarations to the top of the current scope
15. Optimize if-s followed by return annd continue
16. Join var declarations
17. Drop side-effect-free statements
18. Encodes Unicode characters as ASCII
19. Use semicolons to separate statements
20. Output comments
21. Beautify output