This release introduces support for the three most recent editions of
JavaScript: ES7, ES8, and ES9. Users can enable support for any one of these
via the esversion
linting option.
Perhaps most notably, this includes "async functions." Since their standardization in ES2017, no feature has been more requested. We're happy to add support for this powerful new language feature. If the delay is any indication, extending JSHint's parser was no small task, and we were able to make many seemingly-unrelated corrections along the way.
That progress is easiest to see in JSHint's performance on Test262 (the official test suite for the JavaScript programming language). Version 2.9.6 passed 84% of those tests. Version 2.10.0 passes 96%. We're excited to push that number higher, especially considering that new language features and new tests are being added every day. If you're curious about what needs to be done, we maintain an "expectations file" describing every test JSHint is known to fail today.
This release also includes brand-new parsing logic for classes. We thank Ethan Dorta and Alex Kritchevsky, the two first-time contributors who made this possible!
let
token (030d6b4)globals
config in JavaScript API (0278731)noreturnawait
(70ab03d)regexpu
option (962dced)leanswitch
(1f008f2)