This JavaScript editing mode supports:

 - the full JavaScript language through version 1.7
 - accurate syntax highlighting using a recursive-descent parser
 - syntax-error and strict-mode warning reporting
 - "bouncing" line indentation to choose among alternate indentation points
 - smart line-wrapping within comments and strings
 - code folding:
   - show some or all function bodies as {...}
   - show some or all block comments as /*...*/
 - context-sensitive menu bar and popup menus
 - typing helpers (e.g. inserting matching braces/parens)
 - many customization options

Homepage:
https://code.google.com/archive/p/js2-mode/
