Avatar for the oxc-project user
oxc-project
oxc
BlogDocsChangelog

Performance History

Latest Results

fix(semantic): hoist Annex B block-scoped function declarations to var scope In sloppy mode JavaScript, function declarations inside blocks (if, try, switch, {}) have Annex B.3.2.1 semantics: they create an implicit var-like binding in the enclosing function scope. The semantic analysis was not modeling this hoisting, which caused the mangler to assign conflicting names to block-scoped functions and outer var bindings. Fix: hoist plain (non-async, non-generator) function declarations from block scopes to the enclosing var scope during binding, using the same move_binding + set_symbol_scope_id + hoisting_variables pattern as var hoisting. This makes the mangler handle them naturally alongside other var-scope bindings, allowing name reuse from sibling scopes. Skipped for TypeScript sources (Annex B is a JavaScript-only spec). Fixes #20610 Fixes #14316 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix/semantic-annex-b-block-scoped-function
5 minutes ago
[autofix.ci] apply automated fixes
fix/semantic-annex-b-block-scoped-function
9 minutes ago
hoisted function approach
fix/mangler-annex-b-block-scoped-function
31 minutes ago
add sibling `var` test
fix/mangler-annex-b-block-scoped-function
4 hours ago
remove part2
fix/mangler-annex-b-block-scoped-function
4 hours ago
refactor(formatter,oxfmt): Fix up xxx-in-js logic
03-25-refactor_formatter_oxfmt_fix_up_xxx-in-js_logic
4 hours ago

Latest Branches

CodSpeed Performance Gauge
+7%
fix(semantic): hoist Annex B block-scoped function declarations to var scope#20728
21 minutes ago
7da639e
fix/semantic-annex-b-block-scoped-function
CodSpeed Performance Gauge
-6%
47 minutes ago
14c83d6
fix/mangler-annex-b-block-scoped-function
CodSpeed Performance Gauge
0%
refactor(formatter,oxfmt): Fix up xxx-in-js logic#20722
4 hours ago
deb5eef
03-25-refactor_formatter_oxfmt_fix_up_xxx-in-js_logic
Ā© 2026 CodSpeed Technology
Home Terms Privacy Docs