Skip to main content

ESLint 10.13.0

Release Date: October 16, 2026

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-define now 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-calls covers globalThis. Calling globalThis() as a function is now an error, matching how the rule already treated window and global.
  • no-unsafe-optional-chaining checks yield*. Delegating to a possibly null or undefined iterable through yield* 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.

Other Versions

By continuing to use the site, you agree to the use of cookies.