biomejs
biome
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(lint/noOctalEscape): preserve string value when fixing octal escapes with leading digit 4-7 The Safe autofix computed the octal escape length by greedily consuming up to 5 following octal digits, ignoring ECMAScript Annex B.1.2: a legacy octal escape is at most 3 octal digits, and at most 2 when the leading digit is 4-7 (there is no `FourToSeven OctalDigit OctalDigit` production; max value is \377 = 255). Because action() slices text[index+1..index+len] and parses it as one octal number, `biome check --write` silently changed the runtime value of some string literals. For example "\751", which JS parses as "\75" (=) followed by the literal '1', was rewritten to the single character ǩ (U+01E9) instead of "\x3d1". Cap the number of trailing octal digits by the leading digit so the fix slices exactly what JavaScript parses. The diagnostic range shrinks automatically because diagnostic() and action() share RuleState.len. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mikehasa:fix/no-octal-escape-value-corruption
18 minutes ago
Update crates/biome_js_analyze/src/lint/suspicious/no_octal_escape.rs
mikehasa:fix/no-octal-escape-value-corruption
48 minutes ago
fix(lint/noOctalEscape): preserve string value when fixing octal escapes with leading digit 4-7 The Safe autofix computed the octal escape length by greedily consuming up to 5 following octal digits, ignoring ECMAScript Annex B.1.2: a legacy octal escape is at most 3 octal digits, and at most 2 when the leading digit is 4-7 (there is no `FourToSeven OctalDigit OctalDigit` production; max value is \377 = 255). Because action() slices text[index+1..index+len] and parses it as one octal number, `biome check --write` silently changed the runtime value of some string literals. For example "\751", which JS parses as "\75" (=) followed by the literal '1', was rewritten to the single character ǩ (U+01E9) instead of "\x3d1". Cap the number of trailing octal digits by the leading digit so the fix slices exactly what JavaScript parses. The diagnostic range shrinks automatically because diagnostic() and action() share RuleState.len. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mikehasa:fix/no-octal-escape-value-corruption
52 minutes ago
fix(codegen): lower Array.from declarations (#11878)
main
1 hour ago
fix(codegen): lower Array.from declarations
dyc3/lower-array-from
2 hours ago
fix(types): lower RegExp declarations and preserve nullable exec results
dyc3/lower-regexp-declarations
2 hours ago
feat(codegen): lower builtin constructors and Iterable
dyc3/lower-builtin-constructors
2 hours ago
feat(types): lower readonly types and infer const generics
dyc3/lower-readonly-and-generic-modifiers
2 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
fix(lint/noOctalEscape): preserve string value when fixing octal escapes with leading digit 4-7
#11882
2 hours ago
ddff7b7
mikehasa:fix/no-octal-escape-value-corruption
CodSpeed Performance Gauge
+4%
fix(codegen): lower Array.from declarations
#11878
1 day ago
7a9dd12
dyc3/lower-array-from
CodSpeed Performance Gauge
-10%
fix(types): lower RegExp declarations and preserve nullable exec results
#11877
2 days ago
920f98e
dyc3/lower-regexp-declarations
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs