š„ BREAKING CHANGES
- 36cdc31 str: [BREAKING] Remove identity
FromInimpl forIdent(#21251) (overlookmotel) - 382958a span: [BREAKING] Remove re-exports of string types from
oxc_spancrate (#21246) (overlookmotel) - c4aedfa str: [BREAKING] Add
static_ident!macro (#21245) (overlookmotel)
š Features
- e7e1aea transformer/typescript: Add
optimize_enumsoption for regular enum inlining (#20539) (Dunqing) - 679f57f transformer/typescript: Implement const enum inlining and declaration removal (#20508) (Dunqing)
- 6dd061c semantic: Extend
MemberWriteTargetto cover all property modification patterns (#21205) (Dunqing) - f134e24 minifier: Support
property_write_side_effectsoption to drop unused property assignments (#20773) (Dunqing) - 75663c0 semantic: Add enum member value evaluation for const enum support (#20602) (Dunqing)
- 3cfe8ed semantic: Add
MemberWriteTargetflag toReferenceFlags(#20772) (Dunqing)
š Bug Fixes
- af1a586 transformer/class-properties: Use correct property name when converting parameter properties (#21268) (Amal Jossy)
- b43250a allocator: Move allocation tracking into
Bump(#21342) (overlookmotel) - 36f505f allocator:
StringBuilderuseAllocator::alloc_layout(#21340) (overlookmotel) - 7a08a6f allocator: Fix allocation counting in
Allocator::alloc_concat_strs_array(#21336) (overlookmotel) - 2338e28 ecmascript: Treat
thisas potentially having side effects (#21297) (sapphi-red) - bd8bd39 allocator: Remove unsafe hacks from
from_raw_partsmethods (#21283) (overlookmotel) - 8f4c340 allocator: Remove dangerous pointer const to mut cast (#21279) (overlookmotel)
- aa9259f parser: Add missing error code for optional param diagnostic (#21258) (camc314)
- 04b3c2f str: Fix unsound casting const pointers to mut pointers (#21242) (overlookmotel)
- ceadf6c str: Make
Ident::from_rawan unsafe function (#21241) (overlookmotel) - eab13b3 transformer/decorators: Avoid accessor storage name collisions (#21106) (Dunqing)
- 07e8a30 transformer/react-refresh: Handle parenthesized variable initializers (#21047) (camc314)
ā” Performance
- c3ca6f6 allocator:
StringBuilder::from_strs_array_incheck for 0 length earlier (#21338) (overlookmotel) - c2422bb allocator:
Allocator::alloc_concat_strs_arraycheck for 0 length earlier (#21337) (overlookmotel) - 04b0fdc allocator: Mark
Allocator::alloc_layoutas#[inline(always)](#21335) (overlookmotel) - 17aee9e allocator: Use
offset_from_unsignedinChunkFooter::as_raw_parts(#21280) (overlookmotel) - 61adedd minifier: Fix O(n²) perf on very many var decls (#21062) (Gunnlaugur Thor Briem)
- addcd02 napi/parser, linter/plugins: Raw transfer deserializer for
Vecs use shift instead of multiply where possible (#21142) (overlookmotel) - 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)
- eb400b8 napi/parser, linter/plugins: Remove
uint32buffer view (#21140) (overlookmotel) - 2675085 napi/parser: Lazy deserialization use only
Int32Array(#21139) (overlookmotel) - 5b35a53 napi/parser: Deserializing tokens use only
int32array (#21138) (overlookmotel) - f163d10 parser: Tokens raw deserialization use
Int32Array(#21137) (overlookmotel) - 7a86613 linter/plugins: Use
Int32Arrays for tokens and comments buffers (#21136) (overlookmotel) - 8c51121 napi/parser, linter/plugins: Raw transfer deserialize
Spanfields asi32s (#21135) (overlookmotel) - bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel)
- c0278ab napi/parser, linter/plugins: Use
Int32Arrayin raw transfer deserializer (#21132) (overlookmotel) - 43482c7 linter/plugins: Use
>>not>>>in binary search loops (#21129) (overlookmotel)
š Documentation
- f5e1845 allocator: Upgrade headers in doc comments for
Bump(#21263) (overlookmotel) - 2870174 allocator: Upper case
SAFETYin comments (#21253) (overlookmotel) - 01bc269 str: Reformat
Identdoc comments (#21240) (overlookmotel) - dd47359 allocator: Add doc comments for panics and errors (#21230) (overlookmotel)