biomejs
biome
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
feat(lint): add noChainedComparison
dyc3/port-the-bad-comparison-sequence-lint-rule-thr_ncu9ur2647
26 minutes ago
[autofix.ci] apply automated fixes
dyc3/port-n-no-sync-thr_3mjvd7qsp2
1 hour ago
feat(lint): add noSyncMethods
dyc3/port-n-no-sync-thr_3mjvd7qsp2
1 hour ago
perf(js_parser): classify the bulk lexer's bytes with NEON on aarch64 aarch64 classified the source one byte at a time with a lookup table. With NEON, it looks up the eight table classes of 16 bytes at once in a 128-byte table with `tbl` and `tbx`, compares for line breaks and non-ASCII bytes, and turns the byte masks into each block's bitmaps with pairwise adds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dyc3/perf-js-bulk-lexer-neon
4 hours ago
fix(format/md): collapse consecutive blank lines between blocks Closes #12738 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dyc3/md-collapse-blank-lines
5 hours ago
perf(js_parser): find trivia and token flags in the bulk lexer with bitmaps The compress pass decides which token starts are trivia, and the flags that each token and trivia piece takes from what comes before it, from the bitmaps of a 64-byte block at once. Added to the bitmap of the bytes that aren't token starts, a bit at a trivia start carries up to the next token start; the same carry finds line breaks before tokens, trailing trivia, and the end of every token. Then one loop writes the tokens of 16 blocks and another their trivia, neither branching on the source, and keywords are looked up afterwards among the identifiers that may be ones. On CPUs with AVX-512 VBMI2, it compresses the offsets of a block's bits and their flags with one instruction each; elsewhere, it finds them eight at a time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dyc3/perf-js-parser-native-stream
5 hours ago
refactor(format/js): walk ancestors with iterators and cover optional chain parens with snapshots Use `ancestors()` to find the node that continues the chain and `successors` to look for the optional chain, and replace the rewriter unit test with spec snapshots. The cases whose output would not parse without the parentheses are in their own spec, so the spec with the others still fails without the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vidigoat:fix/optional-chain-non-null-parens
5 hours ago
perf(js_parser): add a bulk lexer behind the `bulk_lexer` feature The bulk lexer is a separate lexer that decides the tokens of the whole source before parsing. It classifies bytes with SIMD, then carves tokens in one pass that tracks JavaScript, JSX tag and JSX children modes, template substitutions, and regex-versus-division from the preceding tokens. Kinds and offsets are stored in flat arrays. The parser reads them through `BulkTokenSource`, which falls back to `JsLexer` only where it asks for a token in a context the bulk pass didn't predict. The existing lexer stays the default; `--features bulk_lexer` selects the bulk lexer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dyc3/perf-js-bulk-lexer
6 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
feat(lint): add noChainedComparison
#12765
30 minutes ago
27ae193
dyc3/port-the-bad-comparison-sequence-lint-rule-thr_ncu9ur2647
CodSpeed Performance Gauge
0%
feat(lint): add noSyncMethods
#12764
1 hour ago
0bc4ee2
dyc3/port-n-no-sync-thr_3mjvd7qsp2
CodSpeed Performance Gauge
+7%
perf(parse/js): classify the bulk lexer's bytes with NEON on aarch64
#12763
4 hours ago
c27b0c1
dyc3/perf-js-bulk-lexer-neon
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs