
Highlights
Rules updated for explicit resource management
The following core rules were updated to support the new using and await using declarations from the explicit resource management feature:
curly: Now allowsusingandawait usingas the only statement in a block, similar to howletandconstare handled, to avoid parser errors.no-unused-vars: Treats variables declared withusing/await usingas used, since theirSymbol.disposeis implicitly called at the end of their scope. Also adds an option to ignore unusedusingdeclarations.prefer-destructuring: No longer requires destructuring forusing/await usingdeclarations, as this would be a parse error.require-awaitandno-await-in-loop: Both rules now recognizeawait usingas anawaitexpression for their checks and reporting.
These changes ensure ESLint core rules are compatible with the upcoming JavaScript explicit resource management syntax, providing accurate linting and avoiding false positives or parse errors.
Rules updated for TypeScript accessor support
The following rules were updated to improve support for TypeScript types in accessor signatures:
accessor-pairs: Now supports checking getter and setter pairs in TypeScript interfaces and type literals when the newenforceForTSTypesoption is enabled. This ensures that accessors in TypeScript type definitions are also validated for pairing.grouped-accessor-pairs: Similarly, this rule now supports TypeScript interfaces and type literals with theenforceForTSTypesoption, enforcing that accessors are grouped together in these type constructs as well.
These enhancements allow ESLint to provide more accurate linting for TypeScript codebases that use accessors in type definitions, helping catch issues that were previously unchecked.
Features
1245000feat: support explicit resource management in core rules (#19828) (fnx)0e957a7feat: support typescript types in accessor rules (#19882) (fnx)
Bug Fixes
960fd40fix: Upgrade @eslint/js (#19971) (Nicholas C. Zakas)bbf23fafix: Refactor reporting into FileReport (#19877) (Nicholas C. Zakas)d498887fix: bump @eslint/plugin-kit to 0.3.4 to resolve vulnerability (#19965) (Milos Djermanovic)f46fc6cfix: report only global references in no-implied-eval (#19932) (Nitin Kumar)7863d26fix: remove outdated types inParserOptions.ecmaFeatures(#19944) (ntnyq)3173305fix: update execScript message in no-implied-eval rule (#19937) (TKDev7)
Documentation
86e7426docs: Update README (GitHub Actions Bot)
Chores
50de1cechore: package.json update for @eslint/js release (Jenkins)74f01a3ci: unpinjitito version^2.5.1(#19970) (루밀LuMir)2ab1381ci: pinjitito version 2.4.2 (#19964) (Francesco Trotta)b7f7545test: switch to flat config mode inSourceCodetests (#19953) (Milos Djermanovic)f5a35e3test: switch to flat config mode in eslint-fuzzer (#19960) (Milos Djermanovic)e22af8crefactor: useCustomRuleDefinitionTypeinJSRuleDefinition(#19949) (Francesco Trotta)e855717chore: switch performance tests to hyperfine (#19919) (Francesco Trotta)2f73a23test: switch to flat config mode inast-utilstests (#19948) (Milos Djermanovic)c565a53chore: excludefurther_reading_links.jsonfrom Prettier formatting (#19943) (Milos Djermanovic)
