JSHint v2.10.0 Release Notes

Release Date: 2019-02-05 // about 5 years ago
  • 2.10.0 (2019-02-05)

    ๐Ÿš€ 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!

    ๐Ÿ› Bug Fixes

    • Accept new RegExp flag introduced by ES6 (26b9e53)
    • โž• Add global variables introduced in ES2017 (aded551)
    • โž• Add globals for EventTarget interface (b78083a)
    • โž• Add globals for WindowOrWorkerGlobalScope (e0aac94)
    • ๐Ÿ‘ Allow YieldExpression as computed property (40dca82)
    • Correct implementation of spread/rest (bd0ae0d)
    • Correct invalid function invocation (cda02ae)
    • ๐Ÿ“œ Correct parsing of let token (030d6b4)
    • ๐Ÿ“œ Correct parsing of arrow function (8fa6e39)
    • ๐Ÿ“œ Correct parsing of InExpression (06f54d0)
    • Disallow dups in non-simple parameter list (4a5a4a5)
    • Disallow fn declarations in stmt positions (a0e0305)
    • Disallow YieldExpression in gnrtr params (17ca4e4)
    • Enforce UniqueFormalParameters for methods (280d36b)
    • Honor globals config in JavaScript API (0278731)
    • Report invalid syntax as error (5ca8b1a)
    • โšก๏ธ Update parsing of object "rest" property (58967ea)

    ๐Ÿ”‹ Features

    • Enable object rest/spread via esversion (3fc9c19)
    • Enforce ES2016 restriction on USD (2c2025b)
    • Implement noreturnawait (70ab03d)
    • Implement regexpu option (962dced)
    • Implement ES2019 RegExp "dotall" (457d732)
    • ๐Ÿ‘ Implement support for async iteration (1af5930)
    • ๐Ÿ‘ Implement support for ES8 trailing commas (29cab1f)
    • ๐Ÿ‘ Implement support for object spread/rest (35e1b17)
    • Introduce exponentiation operator (21b8731)
    • ๐Ÿ‘• Introduce linting option leanswitch (1f008f2)
    • ๐Ÿ‘ Introduce support for async functions (bc4ae9f)