unstale

npm / eslint

eslint

What changed in eslint 9 to 10, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

28 breaking3 security2 deprecations16 new APIs and options1 performance20 behavior and defaults4 tooling85 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

eslint 10139 changes

Breaking changes 28

  • Reports references inside immediately invoked function expressions.

    10.13.0release notes

  • Built-ins are exempted only when they reference the global.

    10.11.0release notes

  • The rule now reports unsafe labeled continue statements.

    10.11.0release notes

  • Reports max-nested-callbacks violations at the function head.

    10.5.0release notes

  • eslint-env comments are now reported as errors.

    10.0.0release notes

  • The rules included in eslint:recommended have been updated.

    10.0.0release notes

  • Legacy eslintrc configuration support has been removed.

    10.0.0release notes

  • The fake FlatESLint export has been removed.

    10.0.0release notes

  • The func-names rule schema has been tightened.

    10.0.0release notes

  • Versions of jiti older than 2.2.0 are no longer supported.

    10.0.0release notes

  • The fake LegacyESLint export has been removed.

    10.0.0release notes

  • The deprecated LintMessage#nodeType field has been removed.

    10.0.0release notes

  • The rule schema now requires unique items in its option array.

    10.0.0release notes

  • no-shadow-restricted-names reports globalThis by default.

    10.0.0release notes

  • Supported Node.js versions are now ^20.19.0, ^22.13.0, or >=24.

    10.0.0release notes

  • ParserOptions no longer includes ecmaVersion.

    10.0.0release notes

  • ParserOptions no longer includes sourceType.

    10.0.0release notes

  • Program ranges now span the entire source text.

    10.0.0release notes

  • ResultsMeta now includes a color property.

    10.0.0release notes

  • Deprecated rule context methods have been removed.

    10.0.0release notes

  • All RuleFixer methods now assert that text is a string.

    10.0.0release notes

  • Valid test cases now use stricter assertions.

    10.0.0release notes

  • Global variables are added through ScopeManager#addGlobals().

    10.0.0release notes

  • Deprecated SourceCode methods have been removed.

    10.0.0release notes

  • The TDZ scope type has been removed.

    10.0.0release notes

  • The deprecated TestCaseError#type field has been removed.

    10.0.0release notes

  • Inactive unstable_* flags have been removed.

    10.0.0release notes

  • The v10_* flags have been removed.

    10.0.0release notes

Security 1

  • The html formatter now escapes reserved characters in rule IDs, producing safer formatter output.

    10.8.0release notes

Deprecations 2

New APIs and options 16

  • Accepts tokens and comments as inputs.

    10.12.0release notes

  • Adds d and v flags to no-unexpected-multiline.

    10.10.0release notes

  • Adds checkConditionalExpressions to inspect conditional expressions for unmodified loop conditions.

    10.9.0release notes

  • ConfigObject is now exported from eslint/config for use by developers consuming ESLint configuration APIs.

    10.8.0release notes

  • Added support for constructor callbacks in max-nested-callbacks.

    10.7.0release notes

  • Added the errorClassNames option to preserve-caught-error.

    10.7.0release notes

  • Adds checkRelationalComparisons to control checking of relational comparisons.

    10.6.0release notes

  • Adds includeIgnoreFile() to eslint/config for incorporating ignore files into configuration.

    10.4.0release notes

  • Rules can declare the languages they support through meta.languages.

    10.2.0release notes

  • Temporal is now included among the ES2026 globals.

    10.2.0release notes

  • API support for bulk suppressions was added.

    10.1.0release notes

  • Configuration objects can include a name.

    10.0.0release notes

  • max-params adds the countThis option.

    10.0.0release notes

  • no-implied-eval now supports self as an option.

    10.0.0release notes

  • RuleTester adds error assertion options.

    10.0.0release notes

  • RuleTester adds the requireData assertion option.

    10.0.0release notes

Performance 1

  • The rule no longer uses a quadratic-time regular expression, improving lint performance.

    10.8.0release notes

Behavior and default changes 17

  • Checks globalThis for invalid object calls.

    10.13.0release notes

  • Checks yield* expressions for unsafe optional chaining.

    10.13.0release notes

  • The ignoreConstructors option now handles quoted properties.

    10.11.0release notes

  • Checks Object.prototype property names.

    10.10.0release notes

  • The radix rule now supports computed Number.parseInt member access.

    10.7.0release notes

  • The radix rule now reports invalid signed numeric radix values.

    10.7.0release notes

  • The rule now detects constant binary expressions involving Symbol() and BigInt().

    10.6.0release notes

  • Reports max-depth violations on keywords.

    10.5.0release notes

  • Reports max-lines-per-function violations at the function head.

    10.5.0release notes

  • Updates max-statements error locations to the function header.

    10.5.0release notes

  • The rule now checks sequence expressions in for-loop conditions.

    10.4.0release notes

  • The rule now provides suggestions for unused private class members.

    10.3.0release notes

  • The rule now recognizes Temporal objects when checking for disallowed object calls.

    10.2.0release notes

  • The no-var rule now applies fixes within TSModuleBlock nodes.

    10.1.0release notes

  • array-callback-return now handles Array.fromAsync callbacks.

    10.0.0release notes

  • JSX references are tracked during linting.

    10.0.0release notes

  • RuleTester outputs the failing test case index.

    10.0.0release notes

Tooling 4

  • Added suggestions to no-compare-neg-zero.

    10.7.0release notes

  • Reports no-with violations at the with keyword.

    10.5.0release notes

  • Failure locations are estimated for RuleTester assertions.

    10.0.0release notes

  • ESLint replaces chalk with styleText for terminal styling.

    10.0.0release notes

Fixes and other changes 70

  • Prevents combined fixes from creating a redeclared let.

    10.13.0release notes

  • Fixes handling of astral letters.

    10.12.0release notes

  • Adds the missing space after else in autofixes.

    10.12.0release notes

  • Supports TSFunctionType nodes.

    10.12.0release notes

  • Corrects messages for long private names.

    10.12.0release notes

  • Skips lines containing multiple comments.

    10.12.0release notes

  • Handles astral letters when enforcing capitalization conventions.

    10.12.0release notes

  • Fixes handling of astral letters.

    10.12.0release notes

  • Fixes handling of astral letters.

    10.12.0release notes

  • Avoids a false positive for 0.e5.

    10.12.0release notes

  • Avoids a false positive in conditional tests.

    10.12.0release notes

  • Corrects autofixing for async function bases.

    10.12.0release notes

  • The rule no longer reports __proto__ properties.

    10.11.0release notes

  • The rule now ignores __proto__ properties.

    10.11.0release notes

  • TimePass.parse is now optional in the types.

    10.11.0release notes

  • Adds support for __proto__ in exported comments.

    10.10.0release notes

  • Fixes a false positive for UTC calls when properties is false.

    10.10.0release notes

  • Fixes false negatives involving class fields and static blocks.

    10.10.0release notes

  • Ignores static imports when reporting unreachable code.

    10.10.0release notes

  • Prevents the autofix from breaking when Object is shadowed.

    10.10.0release notes

  • Fixes a false positive for numeric literals with a trailing decimal point.

    10.9.1release notes

  • The rule now handles numeric underflow cases.

    10.9.0release notes

  • Prevents unsafe autofixes when functions are hoisted.

    10.9.0release notes

  • Prevents autofixes when a var is shadowed by a catch parameter.

    10.9.0release notes

  • Prevents invalid autofixes that create a tagged template call.

    10.9.0release notes

  • False positives are corrected for the accessor-pairs rule.

    10.8.1release notes

  • False positives are corrected for the getter-return rule.

    10.8.1release notes

  • Meta-property names are now ignored when checking identifiers against the denylist.

    10.8.1release notes

  • Meta-property names are now ignored when checking identifiers against the configured pattern.

    10.8.1release notes

  • The autofix now prevents an ASI hazard when removing unused labels.

    10.8.1release notes

  • The removeVar suggestion now handles ASI hazards safely.

    10.8.1release notes

  • Ignore configurations are now applied to computed methods.

    10.8.0release notes

  • The rule no longer crashes when all loop types are ignored.

    10.8.0release notes

  • The rule now adds a semicolon when inserting parentheses.

    10.8.0release notes

  • The rule now handles NewExpression nodes with a parenthesized callee.

    10.8.0release notes

  • Fixed handling of static template literals.

    10.7.0release notes

  • The null option no longer reports non-equality operators.

    10.7.0release notes

  • ignoreClassesWithImplements now applies to class expressions.

    10.7.0release notes

  • Avoided false positives for shadowed RegExp.

    10.7.0release notes

  • Sequence expression operands are now parenthesized correctly.

    10.7.0release notes

  • Avoided false positives for shadowed RegExp.

    10.7.0release notes

  • Avoided false positives for shadowed globals.

    10.7.0release notes

  • Cause insertion now occurs outside wrapping parentheses.

    10.7.0release notes

  • Avoided false positives for spread arguments.

    10.7.0release notes

  • Avoided false positives on shadowed NaN and Number.

    10.7.0release notes

  • Restores the rule's report range for files containing too many classes.

    10.6.0release notes

  • Fixes callback detection for IIFEs and avoids reporting inner non-callbacks.

    10.6.0release notes

  • The rule now correctly accounts for a shadowed Boolean identifier.

    10.6.0release notes

  • Suppresses an invalid class suggestion produced by the rule.

    10.6.0release notes

  • The rule no longer reports shadowed undefined identifiers.

    10.6.0release notes

  • Fixes an invalid autofix when the rule reports an expression at the start of a statement.

    10.6.0release notes

  • The rule no longer reports shadowed undefined identifiers or shadowed Promise references.

    10.6.0release notes

  • The rule no longer reports shadowed undefined identifiers.

    10.6.0release notes

  • Corrects max-depth handling for else-if chains.

    10.5.0release notes

  • Corrected stack tracking for max-nested-callbacks violations.

    10.5.0release notes

  • Adds missing CodePath and CodePathSegment types for consumers of ESLint's type definitions.

    10.4.1release notes

  • Failures from delegated commands are now propagated so command-line failures are reported correctly.

    10.4.1release notes

  • Corrects an invalid autofix when a newline appears after async.

    10.4.1release notes

  • Prevents a false positive for a reference in a finally block.

    10.4.1release notes

  • Deprecated rule replacements that are not arrays are now handled correctly.

    10.4.0release notes

  • ESLint now handles an unavailable require cache, preventing failures when the cache cannot be accessed.

    9.39.5, 10.3.0release notesrelease notes

  • Rule suggestions no longer cause unintended continuation in a class body.

    10.3.0release notes

  • Generator yield resumption paths are modeled correctly in code path analysis.

    10.2.1release notes

  • Language and processor validation errors are clarified, helping diagnose invalid configuration.

    10.2.1release notes

  • The rule no longer reports false positives when Promise is shadowed.

    10.2.1release notes

  • The no-var rule no longer autofixes when a variable is used before its declaration.

    10.1.0release notes

  • Messages now include the variable name, making reported useless assignments easier to identify.

    10.0.3release notes

  • The error message for unused suppressions was updated.

    10.0.1release notes

  • no-restricted-import messages have been corrected.

    10.0.0release notes

  • verifyAndFix now receives filename as its third argument.

    10.0.0release notes

eslint 920 changes

Security 2

  • ajv was updated to address security vulnerabilities.

    9.39.4release notes

  • A security vulnerability patch was applied for ESLint 9.x.

    9.39.4release notes

Behavior and default changes 3

  • The rule highlights only the static block header.

    9.39.0release notes

  • Error locations now point to the duplicate key.

    9.39.0release notes

  • The rule now highlights only the function header, changing where complexity warnings appear.

    9.38.0release notes

Fixes and other changes 15

  • Restored TypeScript 4.0 compatibility in ESLint types.

    9.39.3release notes

  • ESLint now warns when eslint-env configuration comments are found.

    9.39.2release notes

  • Only the node is passed to JS language visitor methods, correcting the visitor method arguments.

    9.39.1release notes

  • Error locations are updated.

    9.39.0release notes

  • Error locations are updated.

    9.39.0release notes

  • The rule now allows JSDoc comments.

    9.39.0release notes

  • Program nodes now use the AST.Program type.

    9.39.0release notes

  • Rule typings are corrected for more accurate TypeScript usage.

    9.39.0release notes

  • Scope typings are corrected for more accurate TypeScript usage.

    9.39.0release notes

  • Forward traversal now passes step arguments to visitors.

    9.39.0release notes

  • The error message is improved when a suggestion lacks a fix function.

    9.39.0release notes

  • Timing reporting is unified for concurrent linting.

    9.39.0release notes

  • The rule no longer incorrectly reports some numeric literals written with e notation.

    9.38.0release notes

  • Type support for isolated dependencies in pnpm was improved.

    9.38.0release notes

  • The SourceCode type definitions were corrected for developers using the API.

    9.38.0release notes