oxc-project
oxc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
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
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
18 minutes ago
hoisted function approach
fix/mangler-annex-b-block-scoped-function
31 minutes ago
refactor(formatter,oxfmt): Fix up xxx-in-js logic (#20722) JSDoc formatting also uses the same logic as xxx-in-js. So, adjustments have been made to accommodate this.
main
4 hours 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%
fix(mangler): prevent slot reuse for block-scoped functions in sloppy mode
#20705
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