biomejs
biome
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
perf(types): solve every read of a binding in one root together Narrowing a read used to walk and solve every flow node that reaches the read's point, so reads at many distinct points of one function repeated the same work for each point. Collection now records each binding's read points per execution root, and the new `infer_flow_binding_states` query solves them all in one walk. `infer_flow_binding_type` stays a query per point and takes its result from that solve, so edits still invalidate only the reads whose type changes. When the shared solve exceeds the flow work limit or meets a query cycle, each point is solved on its own as before, so no read loses precision because other reads share its function.
feat/type-narrowing
4 minutes ago
fix(css_formatter): moved into the right crate, dropped string allocation, dropped un-neccesary move.
vibbix:bugfix/scss-unused-classes-parent-suffix
9 minutes ago
refactor(types): select predicate guards during flow collection Calls to local type guards are now decomposed with the other conditions while flow is collected from syntax and raw types, so inference applies them without reading syntax. Inference resolves only the predicate target, including through type aliases. Guards can also be arrow or function expressions bound to an unwritten variable. Only the tested parameter and the arguments up to it affect support, and the reference, parameter, name and parenthesis limits are gone. Modules that read `eval` or the implicit `arguments` object trust no guard, because a direct `eval` can reassign one.
feat/type-narrowing-function-guards
25 minutes ago
chore: address feedback
feat/type-narrowing-assertions
25 minutes ago
refactor(types): select predicate guards during flow collection Calls to local type guards are now decomposed with the other conditions while flow is collected from syntax and raw types, so inference applies them without reading syntax. Inference resolves only the predicate target, including through type aliases. Guards can also be arrow or function expressions bound to an unwritten variable. Only the tested parameter and the arguments up to it affect support, and the reference, parameter, name and parenthesis limits are gone. Modules that read `eval` or the implicit `arguments` object trust no guard, because a direct `eval` can reassign one.
feat/type-narrowing-function-guards
25 minutes ago
fix(css_formatter): replaced with functions
vibbix:bugfix/13024-scss-return-list-layout
31 minutes ago
fix(css_formatter): dropped indirect function, replace with trait. matches `FormatScssMapPairLayout`
vibbix:bugfix/13024-scss-return-list-layout
34 minutes ago
perf(types): skip unions at joins whose incoming states agree A join whose predecessors all carry the same type now takes that type instead of rebuilding the union through the union builder, which dominated reads that follow many `if` statements. Predecessors still at `never` are skipped, as the union builder would drop them. Solving a read also numbers its reached nodes through a flat table indexed by node id instead of a hash map, and stores the successor lists back to back instead of in one vector per node.
feat/type-narrowing
36 minutes ago
Latest Branches
CodSpeed Performance Gauge
0%
fix(lint/css): check SCSS parent selector suffixes in noUnusedClasses
#12972
18 minutes ago
b250283
vibbix:bugfix/scss-unused-classes-parent-suffix
CodSpeed Performance Gauge
+8%
fix(css_formatter): keep the first SCSS @return list item on the keyword line
#13025
40 minutes ago
5dc85b3
vibbix:bugfix/13024-scss-return-list-layout
CodSpeed Performance Gauge
+6%
fix(js_type_info): apply destructuring defaults to binding types
#12548
20 days ago
5059938
pkallos:fix/destructuring-default-undefined
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs