ESLint 10.13.0
ESLint 10.13.0 shipped on October 16, 2026. Three rule changes, one bug fix, and a performance cleanup. Here is the list.
Rule Changes
no-use-before-definenow sees inside IIFEs. References to variables declared later in the same scope, but used inside an immediately invoked function expression, are reported. Previously the IIFE boundary hid them, so this rule will start flagging patterns that used to pass.no-obj-callscoversglobalThis. CallingglobalThis()as a function is now an error, matching how the rule already treatedwindowandglobal.no-unsafe-optional-chainingchecksyield*. Delegating to a possibly null or undefined iterable throughyield*is now reported.
Bug Fix
Autofix conflict between no-var and one-var is resolved. Running both fixes together could produce a redeclared let binding, which then failed to parse. Fixes are now applied without generating an invalid declaration.
Performance and Housekeeping
The no-redeclare rule skips its scope scan for variables with a single declaration, which cuts work in files with many small declarations. Documentation clarifications landed for SourceCode#getText parameters, and the ecosystem plugin tests for typescript-eslint were re-enabled after being disabled.
Upgrade
Bump the package with your package manager and run a lint pass before committing. Expect new reports from no-use-before-define in codebases that wrap top-level logic in IIFEs; those are genuine findings, not false positives, so fix the ordering rather than disabling the rule. No configuration changes are required for 10.x users.