Eight new nursery lint rules land across JS, Vue, HTML, and Svelte
Biome added a wave of new lint rules, including noUselessAssignment, noDoubleComparison, noUselessDateGetTime, noPromiseExecutorReturn, noAccidentalBitwiseOperators, useMatchingFunctionName, useNamedFunction, and noSvelteUselessDerivedBy. Several also came with ESLint migration mappings and config/schema updates, which makes them immediately usable and easier to adopt.
arguments.caller / arguments.callee are now flagged (
3743a53)
The new noArgumentsCallerOrCallee nursery rule reports deprecated arguments.caller and arguments.callee usage, nudging code toward named recursion instead. This closes off a long-discouraged JavaScript pattern and adds coverage to the formatter/linter integration.
for loops with truthy literal tests are treated as infinite (
e26a76b)
Biome’s JS control-flow analysis now recognizes for loops whose test is a truthy literal as infinite. That fixes unreachable-code diagnostics and related checks so they no longer miss dead code after such loops.
Prettier migration now keeps default semi and singleQuote behavior (
33fef85)
The Prettier migration path was adjusted to use Prettier’s defaults for semi and singleQuote instead of over-specifying them. This should produce cleaner, more accurate migrated configs and fewer surprising diffs.
Other misc changes
- Added a TanStack Query rule source.
- Updated ESLint-to-Biome migration mappings for newly added rules.
- Minor test/snapshot and generated metadata updates.