
Highlights
Building on the release of AST selectors in v3.18.0, no-restricted-syntax now supports custom error messages:
{
    "rules": {
        "no-restricted-syntax": [
            "error",
            {
                "selector": "CallExpression[callee.name='setTimeout'][arguments.length!=2]",
                "message": "setTimeout must always be invoked with two arguments."
            }
        ]
    }
}
    
Autofix is now more reliable thanks to nine individual fixes in this release.
Enhancements
- 91baed4 Update: allow custom messages in no-restricted-syntax (fixes #8298) (#8357) (Vitor Balocco)
 
Bug Fixes
- e09132f Fix: no-extra-parens false positive with exports and object literals (#8359) (Teddy Katz)
 - 35c93e6 Fix: prevent space-before-function-paren from checking type annotations (#8349) (Teddy Katz)
 - 3342e9f Fix: don’t modify operator precedence in operator-assignment autofixer (#8358) (Teddy Katz)
 - 155424c Fix: ignore empty path in patterns (fixes #8362) (#8364) (alberto)
 - 27616a8 Fix: prefer-const false positive with object spread (fixes #8187) (#8297) (Vitor Balocco)
 - 1b1046b Fix: don’t classify plugins that throw errors as “missing” (fixes #6874) (#8323) (Teddy Katz)
 - 29f4ba5 Fix: no-useless-computed-key invalid autofix for getters and setters (#8335) (Teddy Katz)
 - 0541eaf Fix: no-implicit-coercion invalid autofix with consecutive identifiers (#8340) (Teddy Katz)
 - 41b9786 Fix: no-extra-parens false positive with objects following arrows (#8339) (Teddy Katz)
 - 3146167 Fix: 
eslint.verifyshould not mutate config argument (fixes #8329) (#8334) (alberto) - 927de90 Fix: dot-notation autofix produces invalid syntax for integer properties (#8332) (Teddy Katz)
 - a9d1bea Fix: comma-style autofix produces errors on parenthesized elements (#8331) (Teddy Katz)
 - d52173f Fix: don’t generate invalid options in config-rule (#8326) (Teddy Katz)
 - 6eda3b5 Fix: no-extra-parens invalid autofix in for-of statements (#8337) (Teddy Katz)
 - 6c819d8 Fix: dot-notation autofix produces errors on parenthesized computed keys (#8330) (Teddy Katz)
 - 2d883d7 Fix: object-shorthand autofix produces errors on parenthesized functions (#8328) (Teddy Katz)
 - cd9b774 Fix: quotes false positive with backtick option in method names (#8327) (Teddy Katz)
 - d064ba2 Fix: no-else-return false positive for ifs in single-statement position (#8338) (Teddy Katz)
 - 2f144ca Fix: operator-assignment autofix errors with parentheses (fixes #8293) (#8294) (Teddy Katz)
 - ddc6350 Fix: no-param-reassign false positive on destructuring (fixes #8279) (#8281) (Teddy Katz)
 
Documentation
- f88375f Docs: clarify that no-unsafe-negation is in eslint:recommended (#8371) (Teddy Katz)
 - 02f0d27 Docs: Add soda0289 to Development Team (#8367) (Kai Cataldo)
 - 8569a90 Docs: add note about git’s linebreak handling to linebreak-style docs (#8361) (Teddy Katz)
 - 602e9c2 Docs: fix incorrect selector examples (#8278) (Teddy Katz)
 
Dependency Upgrades
- 79a97cb Upgrade: devDependencies (#8303) (alberto)
 - e4da200 Upgrade: Mocha to 3.2.0 (#8299) (Ilya Volodin)
 
Chores
- 5878593 Chore: fix invalid syntax in no-param-reassign test (#8360) (Teddy Katz)
 - 6a718ba Chore: enable max-statements-per-line on ESLint codebase (#8321) (Teddy Katz)
 - 614b62e Chore: update sinon calls to deprecated API. (#8310) (alberto)
 - 0491572 Chore: use precalculated counts in codeframe formatter (#8296) (Vitor Balocco)
 - 8733e6a Chore: Fix incorrect error location properties in tests (#8307) (alberto)
 - c4ffb49 Chore: Fix typos in test option assertions (#8305) (Teddy Katz)
 - 7521cd5 Chore: update token logic in rules to use ast-utils (#8288) (Teddy Katz)
 - 9b509ce Chore: refactor space-before-function-paren rule (#8284) (Teddy Katz)
 - f8176b3 Chore: improve test coverage for node-event-generator (#8287) (Teddy Katz)
 
