mirror of
https://github.com/oxc-project/oxc.git
synced 2026-11-04 10:29:58 +00:00
### 🚀 Features -8dd67a6transform-react: Expose TypeScript transform options (Tomas Särnhammar) -deed7dcparser: More friendly error for duplicate import attribute key (#28262) (sapphi-red) ### 🐛 Bug Fixes -eaa8e90ecmascript: Avoid numeric `+` folding when an operand may be a string (#28544) (camc314) -b03c7b8regular_expression: Allow incomplete oversized legacy quantifiers (#28449) (Boshen) -128c67dsemantic: Check strict eval and arguments writes by reference flags (#28445) (Boshen) -c97c43cparser: Reject TypeScript default exports in JavaScript (#28440) (Boshen) -fdd119fspan: Count Unicode characters when filtering typo suggestions (#28452) (Boshen) -cb64638regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen) -fc0eed3semantic: Stop let-binding scans at arrow functions (#28444) (Boshen) -3421516parser: Preserve default import names in reexports (#28442) (Boshen) -a1e7e5fparser: Reject optional class members in JavaScript (#28439) (Boshen) -5b9a7bcparser: Parse sloppy let expressions and labels (#28438) (Boshen) -8e61652regex: Reject templates without cooked values (#28345) (Boshen) -3b36543parser: Preserve in-context after TypeScript type arguments (#28300) (Boshen) -2e3126cregex: Decode constructor patterns and flags consistently (#28298) (Boshen) -8a90be2regex: Track capture groups and disjunction identity (#28297) (Boshen) -3dc2cb0regex: Preserve escape values and boundaries (#28296) (Boshen) -fc8acbcparser: Handle leading-zero numeric exponents (#28295) (Boshen) -91a638dparser: Normalize raw template line endings with invalid escapes (#28285) (Boshen) -2ac9a42parser: Allow parenthesized private-in expressions (#28284) (Boshen) -052bca9ast: Prevent greyed out fields in AST types in IDEs (#28335) (overlookmotel) -ed7df7dast/estree: Include comments in TS Program span (#28326) (camc314) ### ⚡ Performance -9b6b7bfregular_expression: Advance validated Unicode escapes directly (#28514) (Boshen) -82e1982regular_expression: Share Unicode property name prefixes (#28513) (Boshen) -5395a40regular_expression: Parse class set character prefixes once (#28512) (Boshen) -3708934regular_expression: Defer literal range dash allocation (#28511) (Boshen) -d85ee3dsemantic: Skip arguments ancestry checks outside classes (#28510) (Boshen) -cf81d07semantic: Reuse private reference resolution (#28509) (Boshen) -a79eebcsemantic: Avoid duplicate maps for public JavaScript members (#28508) (Boshen) -235ca3bsemantic: Skip escape checks for unescaped strings (#28507) (Boshen) -babf44cparser: Reuse shorthand assignment target identifiers (#28504) (Boshen) -444f24aecmascript: Short-circuit simple parameter checks for rest (#28503) (Boshen) -04b20c0semantic: Compute duplicate parameter policy once per list (#28446) (Boshen) -dbf8482parser: Use token lookahead for simple function types (#28489) (Boshen) -bca1275parser: Avoid unused destructuring rest capacity (#28499) (Boshen) -691be5cparser: Compact cover initialized name storage (#28495) (Boshen) -b3b5444parser: Build simple arrow bindings directly (#28493) (Boshen) -e1c9bafparser: Disambiguate single-identifier arrow heads (#28491) (Boshen) -550e98aregular_expression: Avoid rescanning unique capture names (#28450) (Boshen) -10e9fc7parser: Skip duplicate lookup for singleton import attributes (#28441) (Boshen) -5238839parser: Use a stack buffer for float separators (#28435) (Boshen) -6e35e3cparser: Fast-path leaf expressions before delimiters (#28432) (Boshen) -3d7512cparser: Decode Unicode identifiers once (#28414) (Boshen) -30f59f4parser: Factor object type opening brace (#28430) (Boshen) -028a267parser: Always inline postfix update parsing (#28429) (Boshen) -1b5a171parser: Reuse export kind classification (#28424) (Boshen) -179a432parser: Factor return type identifier parsing (#28416) (Boshen) -553dd1dparser: Inline hot paths and fold function dispatch (#28404) (Boshen) -de75d56parser: Combine parenthesized arrow lookahead (#28412) (Boshen) -a768a0cparser: Reuse comment annotations after rewind (#28408) (Boshen) -563d92aparser: Skip redundant source cursor updates (#28409) (Boshen) -7941ca9parser: Factor tuple identifier parsing (#28398) (Boshen) -426c151parser: Construct completed tokens without intermediate writes (#28291) (Boshen) -df42953minifier: Don't request another pass for block unwrapping (#28315) (Dunqing) -c2d663dparser: Avoid vectors for single parenthesized expressions (#28374) (Boshen) -50bd0a9parser: Size delimited lists after the first element (#28373) (Boshen) -bd869b5parser: Bypass redundant operand parsing (#28372) (Boshen) -455fc09parser: Skip keyword checks for plain identifier expressions (#28371) (Boshen) -61303fbparser: Fast-path identifier operands (#28306) (Boshen) -6cf5b1aparser: Guard arrow and conditional parsing (#28305) (Boshen) -3666939parser: Specialize identifier reference parsing (#28303) (Boshen) -0d6641aparser: Skip inapplicable expression parsing paths (#28294) (Boshen) -3be7997parser: Reduce lexer search batch size (#28292) (Boshen) -ab5655aregex: Remove redundant character-class and quantifier checks (#28288) (Boshen) -ec8e8d4parser: Remove redundant grammar and lexer checks (#28287) (Boshen) -c903f5cparser: Specialize known-token parsing (#28286) (Boshen) -2683225str: `static_ident!` and `static_str!` macros guarantee const evaluation (#28340) (overlookmotel) -df90836ast: Reduce compile time of `#[ast]` macro (#28336) (overlookmotel) -8239dacparser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)
25 KiB
25 KiB
Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog.
[0.157.0] - 2026-11-02
🐛 Bug Fixes
eaa8e90ecmascript: Avoid numeric+folding when an operand may be a string (#28544) (camc314)
⚡ Performance
444f24aecmascript: Short-circuit simple parameter checks for rest (#28503) (Boshen)8239dacparser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)
[0.156.0] - 2026-10-27
💥 BREAKING CHANGES
cf8296fecmascript: [BREAKING] Fold surrogate strings with JSStr constants (#27098) (Dunqing)
🐛 Bug Fixes
bd70a9becmascript: Use ECMAScript whitespace when foldingparseFloat/parseInt/trim(#27719) (Dunqing)
⚡ Performance
3493ce3minifier: Reuse is_error_constructor and simplify substitute_global_new_expression (#28149) (Armano)
[0.155.0] - 2026-10-19
💥 BREAKING CHANGES
a0a987cast: [BREAKING] Preserve lone surrogates in static member names (#26677) (Dunqing)
🐛 Bug Fixes
bd37e78ecmascript: Look through sequence expressions into_primitive(#27837) (baltasarblanco)863b359ecmascript: Correct parseFloat decimal prefix scanning (#27695) (camc314)3543672ecmascript: Do not fold Number.isInteger / isSafeInteger of tiny non-integers to true (#27622) (Baltasar Blanco)6987a61ecmascript: BigInt loose equality folding (unknown operands andStringToBigInt) (#27656) (Baltasar Blanco)022306fecmascript: Do not foldMath.cbrtof a negative number toNaN(#27621) (Baltasar Blanco)
⚡ Performance
88b5c35minifier: Reduce code branches when evaluating roots (#27906) (Armano)
[0.154.0] - 2026-10-13
⚡ Performance
19c227dminifier: Use ident when checking specific id names (#27208) (Armano)
[0.150.0] - 2026-09-14
🚀 Features
ca649e0ecma: Define math constants as known globals and resolve their types (#26585) (Armano)
⚡ Performance
53f006eecmascript: Format small integer literals with itoa (#26446) (camc314)
[0.149.0] - 2026-09-07
🐛 Bug Fixes
853ffabecmascript: AvoidcharAtpanic on 32-bit (#26244) (camc314)
[0.148.0] - 2026-08-31
🐛 Bug Fixes
b874f48ecmascript:Math.roundonly exact half ties (#26150) (camc314)a625378minifier: Coerce omittedindexOfsearch argument (#26149) (camc314)dc7398becmascript: Trim trailing whitespace in string to number (#26148) (camc314)
[0.145.0] - 2026-08-18
🐛 Bug Fixes
f6000acecmascript: Fold**withNumber::exponentiate, not IEEEpow(#25644) (Kotaro Chikuba)e82495becmascript: DeriveToNumberof!xfromToBoolean(#25595) (Kotaro Chikuba)88b34f2clippy: Remove unneededunsafe(#25551) (camc314)
⚡ Performance
568203eecmascript: Use binary search for known globals (#25817) (Boshen)
[0.144.0] - 2026-08-10
💥 BREAKING CHANGES
a33788east: [BREAKING] Group class heritage intoClassHeritage(#25360) (camc314)44fd320ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)
[0.143.0] - 2026-08-03
💥 BREAKING CHANGES
1bdedd1ast: [BREAKING] IntroduceExportDeclaration,ExportFromDeclaration(#25095) (camc314)c917f20ast: [BREAKING] IntroduceArrowFunctionBodyenum (#24987) (camc314)
🚀 Features
5acdae2ecmascript: Skip transparent TS expressions (#25072) (camc314)
🐛 Bug Fixes
8a47ff3ecmascript: Do not treat lone-surrogate strings as constants (#25084) (Dunqing)fbe8d31minifier: Respect targets when folding RegExp source (#24790) (Dunqing)
[0.142.0] - 2026-07-27
🐛 Bug Fixes
07e9accecmascript: Keep side effects in parent oftoStringcalls (#24846) (sapphi-red)16a40adecmascript: Detect side effects in unused arguments tocharCodeAt(#24845) (sapphi-red)133bb35ecmascript: Detect side effects offoo().#barcorrectly when PropertyReadSideEffects::None (#24769) (sapphi-red)
⚡ Performance
a086d91ecmascript: Avoid number literal allocations (#24889) (Dunqing)
[0.141.0] - 2026-07-20
💥 BREAKING CHANGES
54cc121ast: [BREAKING] SplitMetaPropertyintoImportMetaandNewTarget(#24557) (camc314)
🐛 Bug Fixes
e750a82ecmascript: Fix false negative for may_have_side_effects on dynamic property access (#24709) (sapphi-red)
[0.139.0] - 2026-07-06
🚀 Features
60e7160minifier: Drop side-effect-free IIFEs whose result is unused (#23967) (Dunqing)
🐛 Bug Fixes
e274415minifier: Don't drop global calls that throw despite pure arguments (#23917) (Dunqing)
⚡ Performance
bd49affecmascript: Avoid heap-allocating Math.min/max/imul operands (#23941) (Lawrence Lin)
[0.138.0] - 2026-06-29
💥 BREAKING CHANGES
8de5122ecmascript: [BREAKING] Switch to newAstBuilder(#23834) (overlookmotel)
🚀 Features
f2091b3ast: Unify old and newAstBuilders (#23875) (overlookmotel)
📚 Documentation
3d61deaall: Correct capitalization in comments (#23887) (overlookmotel)
[0.137.0] - 2026-06-18
🚀 Features
53509a8minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
🐛 Bug Fixes
31bfd9bminifier: Keep Object introspection calls on a possible Proxy (#23483) (Dunqing)
[0.132.0] - 2026-05-18
🐛 Bug Fixes
0f26de6ecmascript: Resolve identifier value type via tracked constants (#22234) (Alexander Lichter)
[0.126.0] - 2026-04-15
🐛 Bug Fixes
d7a359aecmascript: Treat update expressions as unconditionally side-effectful (#21456) (Dunqing)
[0.125.0] - 2026-04-13
🐛 Bug Fixes
2338e28ecmascript: Treatthisas potentially having side effects (#21297) (sapphi-red)
[0.121.0] - 2026-03-19
🐛 Bug Fixes
4ae3f3fecmascript: Apply coercion-is-pure assumption to constructor side-effect detection (#20420) (Dunqing)efeba28ecmascript: Add argument validation for NewExpression side-effect detection (#20395) (Dunqing)
[0.120.0] - 2026-03-16
🐛 Bug Fixes
edb8677ecmascript: Treat collection constructor with variable arg as side-effectful (#20383) (Dunqing)e62524dminifier: Treat object spread of getters as having side effects (#20380) (Boshen)
[0.119.0] - 2026-03-14
🚀 Features
e7163b6ecmascript: Add known-globals to side-effect-free property reads (#20212) (Dunqing)139ab68ecmascript: Addproperty_write_side_effectstoMayHaveSideEffectsContext(#20217) (Dunqing)
🐛 Bug Fixes
5c97b14minifier: Recognize object spread of object literals as side-effect-free (#20299) (Boshen)ade14d4ecmascript: Enhance side-effect detection for classes, TypedArrays, computed members, and spread (#20213) (Dunqing)
[0.116.0] - 2026-03-02
🐛 Bug Fixes
a35063eminifier: Preserve side effects for meta property url reads (#19668) (Boshen)
[0.113.0] - 2026-02-10
🐛 Bug Fixes
110c300oxc_ecmascript:+[false]and+[true]should evaluate toNaN(#19174) (copilot-swe-agent)
[0.109.0] - 2026-01-19
🐛 Bug Fixes
38e4b53minifier: Validate RegExp patterns before marking as pure (#18125) (Boshen)
[0.107.0] - 2026-01-05
🐛 Bug Fixes
1044116ecmascript: Marknew Symbolas non side-effect free (#17568) (camc314)
[0.102.0] - 2025-12-08
🚀 Features
c90f053minfier: Support.separated values forcompress.treeshake.manualPureFunctions(#16529) (sapphi-red)
[0.99.0] - 2025-11-24
💥 BREAKING CHANGES
cbb27fdast: [BREAKING] AddTSGlobalDeclarationtype (#15712) (overlookmotel)
[0.97.0] - 2025-11-11
🐛 Bug Fixes
8b14ec9minifier: Handle{ __proto__: null } instanceof Objectcorrectly (#15217) (sapphi-red)
[0.91.0] - 2025-09-22
💼 Other
fb347dacrates: V0.91.0 (#13961) (Boshen)
[0.86.0] - 2025-08-31
🚀 Features
f97283becmascript: Support more cases for IsLiteralValue withinclude_functions(#13425) (sapphi-red)
[0.84.0] - 2025-08-30
🚀 Features
95d4311ecmascript: Check side effects inside static blocks (#13404) (sapphi-red)c557854ecmascript: Support MayHaveSideEffects for Statements (#13402) (sapphi-red)
[0.83.0] - 2025-08-29
💥 BREAKING CHANGES
e459866ecmascript: [BREAKING] RemovePropertyReadSideEffects::OnlyMemberPropertyAccess(#13348) (sapphi-red)
🚀 Features
ac2067becmascript: Examine and improveis_literal_value(#13363) (sapphi-red)8e34656ecmascript: Implement MayHaveSideEffects for AssignmentTarget (#13279) (sapphi-red)a1b6ad4minifier: Implement known methodsMath.clz32andMath.imul(#12405) (Ethan Wu)
🐛 Bug Fixes
5d898e8ecmascript: Treat shadowed global calls correctly (#13292) (sapphi-red)
🚜 Refactor
66a5673ecmascript: AddToUint32trait (#13272) (sapphi-red)
[0.82.3] - 2025-08-20
🐛 Bug Fixes
d27a04becmascript: Skip array length evaluation if there are any spread elements (#13162) (Monad)
[0.82.2] - 2025-08-17
🚀 Features
fbe6663minifier: Mark more known global methods as side-effect free (#13086) (Boshen)36386e4ecmascript: Treat[...arguments]as side effect free (#13116) (sapphi-red)fe4589bminifier: Mark more global constructors as side-effect free (#13082) (Boshen)
🚜 Refactor
e190ee5minifier: Clean upremove_unused_expression(#13080) (Boshen)
[0.82.1] - 2025-08-13
📚 Documentation
9c05e2fecmascript: Correct docs forGlobalContext::is_global_reference(#13022) (overlookmotel)
[0.82.0] - 2025-08-12
🚀 Features
54d1750ecmascript: Handletypeofguarded global access as side effect free (#12981) (Copilot)33c0e9fecmascript: Add globalisNaN,isFinite,parseFloat,parseIntfunctions support to constant evaluation (#12954) (Copilot)208e6f7ecmascript: Add URI encoding/decoding support to constant evaluation (#12934) (Copilot)53f7a9fminifier:new Date()hasValueType::Object(#12951) (Boshen)784796dminifier: Fold(!0).toString()totrue(#12938) (Boshen)bc1d716ecmascript: Add ARM64 FJCVTZS instruction optimization for ToInt32 with function-specific target features and runtime detection (#12823) (copilot-swe-agent)
🐛 Bug Fixes
c72f49eecmascript: Fix merge error (Boshen)
🚜 Refactor
8a5c9b9minifier,ecmascript: Clean upis_global_reference(#12953) (Boshen)0c5bffcecmascript: ChangeIsGlobalReferencetoGlobalContext(#12952) (Boshen)c072e01all: Add missing lifetimes in function return types (#12895) (overlookmotel)
📚 Documentation
3ce27e9ecmascript, minifier: Revert changes to changelogs (#12962) (overlookmotel)
[0.81.0] - 2025-08-06
🚜 Refactor
f3f6012ecmascript: Avoid redundant checks by splitting up match arms (#12782) (Ulrich Stark)
[0.80.0] - 2025-08-03
🚜 Refactor
5f50bc3minifier: Move string method constant evaluation from minifier to ecmascript crate (#12672) (Copilot)
📚 Documentation
45e2fe8rust: Fix typos and grammar mistakes in Rust documentation comments (#12715) (Copilot)
[0.79.1] - 2025-07-31
🚀 Features
763a618minifier: Inline small constant values (#12639) (Boshen)
[0.79.0] - 2025-07-30
🚀 Features
b877039minifier: Inlineconstvariables that are only used once (#12488) (Boshen)
🐛 Bug Fixes
fe9c8e1minifier: Do not remove non-plain empty functions (#12573) (Boshen)
[0.77.1] - 2025-07-16
🚜 Refactor
c68b607ast: RenameTemplateLiteral::quasitoTemplateLiteral::single_quasi(#12266) (Dunqing)32c32afast: Check whether there is a singlequasiinTemplateLiteral::quasi(#12265) (Dunqing)
[0.77.0] - 2025-07-12
🚜 Refactor
d5c94a8ecmascript: Moveis_less_thanto its own file (#12189) (Boshen)
[0.74.0] - 2025-06-23
💥 BREAKING CHANGES
7a05e71minifier: [BREAKING] AddTreeshakeoptions (#11786) (Boshen)
🚀 Features
d462eadminifier: Remove dead code that evaluates to a constant value (#11788) (Boshen)
🚜 Refactor
5a46641ecmascript: Moveget_constant_value_for_reference_idtoIsGlobalReferencetrait (#11810) (Boshen)
[0.73.0] - 2025-06-13
💥 BREAKING CHANGES
f3eaefbast: [BREAKING] Addvaluefield toBigIntLiteral(#11564) (overlookmotel)
🚀 Features
40ac186minifier: Annotate more pure constructors (#11555) (Boshen)
⚡ Performance
365d8e5ecmascript: Faster parsing integers (#11565) (overlookmotel)
Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog, and this project does not adhere to Semantic Versioning until v1.0.0.
[0.69.0] - 2025-05-09
Refactor
7c6ac7cecmascript: Remove outdated todo comment (#10909) (Ulrich Stark)
[0.62.0] - 2025-04-01
4077868ecmascript: [BREAKING] Introduce MayHaveSideEffectsContext (#10126) (sapphi-red)
Features
11ddda6ecmascript: Addunknown_global_side_effectstoMayHaveSideEffectsContext(#10130) (sapphi-red)ef3451cecmascript: Addproperty_read_side_effectstoMayHaveSideEffectsContext(#10129) (sapphi-red)ac2ecbbecmascript: Addis_pure_calltoMayHaveSideEffectsContext(#10128) (sapphi-red)e004a3fecmascript: Addrespect_annotationstoMayHaveSideEffectsContext(#10127) (sapphi-red)
Refactor
[0.57.0] - 2025-03-11
Features
b6deff8ecmascript: Support integer index access for array and string inmay_have_side_effects(#9603) (sapphi-red)
Bug Fixes
96eef8becmascript:(foo() + "").lengthmay have a side effect (#9605) (sapphi-red)
[0.56.4] - 2025-03-07
Refactor
62bffedrust: Allow a few annoying clippy rules (#9588) (Boshen)
[0.54.0] - 2025-03-04
Features
64f4a82ecmascript: Handle pure call expression in chain expressions (#9480) (sapphi-red)32139d2ecmascript: Support/* @__PURE__ */in may_have_side_effects (#9409) (sapphi-red)
Bug Fixes
f5bbd5decmascript: Fix toString for negative numbers (#9508) (sapphi-red)d2cd975ecmascript: Fix may_have_side_effects for${a() === b}(#9478) (sapphi-red)584d847ecmascript: Objects passed to template literals may have side effects (#9425) (sapphi-red)
Testing
c187b11ecmascript: Add comments and tests for cases whereToPropertyKeythrows an error (#9429) (sapphi-red)
[0.53.0] - 2025-02-26
Features
e10fb97ecmascript: Improve may_have_side_effects for.length(#9366) (sapphi-red)35e5ca9ecmascript: Improve may_have_side_effects forinstanceof(#9365) (sapphi-red)11012c6ecmascript: Improve ValueType for coalesce operator (#9354) (sapphi-red)b7998fdecmascript: To_number for object without toString (#9353) (sapphi-red)e51d563minifier: Concatenate strings with template literals on right side (#9356) (sapphi-red)
Bug Fixes
f5c8698ecmascript: Correct may_have_side_effects for classes (#9367) (sapphi-red)d3ed128minifier: Do not remove=== 0if the lhs can be NaN (#9352) (sapphi-red)
Refactor
faf966fecmascript: Don't check side effects in constant_evaluation (#9122) (sapphi-red)
[0.52.0] - 2025-02-21
Documentation
3414824oxc: Enableclippy::too_long_first_doc_paragraph(#9237) (Boshen)
Refactor
9f36181rust: Applycllippy::nurseryrules (#9232) (Boshen)
[0.51.0] - 2025-02-15
Features
36c8640ecmascript: Support more string concatenation (#9121) (sapphi-red)6936b08ecmascript: Foldtypeofwith ValueType information (#9086) (sapphi-red)125d610minifier: Fold String::charAt / String::charCodeAt more precisely (#9082) (sapphi-red)237ffbaminifier: Fold bitwise binary expressions with negative BigInts (#9081) (sapphi-red)
Bug Fixes
eb7cd62ecmascript: To_number for shadowed undefined (#9106) (sapphi-red)8cbdf00ecmascript: To_boolean for shadowed undefined (#9105) (sapphi-red)17c745cecmascript: To_string for object with toString (#9104) (sapphi-red)cfc71f9ecmascript: To_string for shadowed undefined (#9103) (sapphi-red)2ab2a8fecmascript: Handle shadowed global variables inValueType(#9085) (sapphi-red)
Refactor
8bd6eefecmascript: Merge constant evaluation logics (#9120) (sapphi-red)b164072ecmascript: Extract to_numeric (#9111) (sapphi-red)fc53cddecmascript: Generalize ToPrimitive (#9109) (sapphi-red)d951390ecmascript: Use value_type in to_primitive (#9108) (sapphi-red)8f79012ecmascript: Pass IsGlobalReference to DetermineValueType instead of extending it (#9107) (sapphi-red)db1744cecmascript: Remove "constant_evaluation" / "side_effects" features (#9114) (sapphi-red)329de94ecmascript: Extract ToPrimitive (#9102) (sapphi-red)d670ec7ecmascript: Pass IsGlobalReference to MayHaveSideEffects instead of extending it (#9101) (sapphi-red)f4e2d4eecmascript: Allow IsGlobalReference to return None (#9100) (sapphi-red)
[0.49.0] - 2025-02-10
Features
ad1a878ecmascript: Support BigInt comparison (#9014) (sapphi-red)d515cfdecmascript: Detect objects without overriddentoString/valueOf/Symbol.toPrimitive(#8993) (sapphi-red)2a10a99ecmascript: Support arrays and objects for unary expression may_have_side_effects (#8990) (sapphi-red)dd383c0ecmascript:ValueType::fromfor PrivateInExpression (#8964) (sapphi-red)c3eef2fecmascript:ValueType::fromfor parenthesized expressions (#8962) (sapphi-red)2c3a46decmascript: Support more simple expressions byValueType::from(#8961) (sapphi-red)4cec83fecmascript:ValueType::fromfor bitwise not operator (#8955) (sapphi-red)e3e9999ecmascript: Complete may_have_side_effects (#8855) (sapphi-red)ca4831bminifier: Foldtypeof class {}to'function'(#8949) (sapphi-red)9ffe9e9minifier: Foldtypeof (() => {})to'function'(#8948) (sapphi-red)36007deminifier: Fold typeof{ foo }whenfoois declared (#8947) (sapphi-red)56575b2minifier: Fold complicated array literals passed to unary+(#8944) (sapphi-red)14462beminifier: Fold simple literals passed to unary+(#8943) (sapphi-red)d6d13ddminifier: Minimize!!(boolean_expr)->boolean_expr(#8849) (Boshen)
Bug Fixes
9a5a926ecmascript: Fix may_have_side_effects for binary expressions (#8991) (sapphi-red)660c314ecmascript: Fix may_have_side_effects for unary expressions (#8989) (sapphi-red)8ab7204ecmascript: FixValueType::fromforAssignmentExpression(#8959) (sapphi-red)aeb122decmascript: FixValueType::fromfor numeric binary operators (#8956) (sapphi-red)1182c20ecmascript:ValueType::fromfor unknown value should return Undetermined instead of Number (#8954) (sapphi-red)b5a7785minifier: Fix comparison of strings with unicode characters (#8942) (sapphi-red)
Refactor
9b5d800minifier: Move equality comparison to ConstantEvaluation (#9009) (sapphi-red)
Styling
a4a8e7dall: Replace#[allow]with#[expect](#8930) (overlookmotel)
Testing
cc7bb9cecmascript: Add test forValueTypeand update document (#8951) (sapphi-red)
[0.48.2] - 2025-02-02
Bug Fixes
ae7f670minifier: Avoid minifying+void unknowntoNaNand fix typo (#8784) (7086cmd)
[0.48.1] - 2025-01-26
Refactor
58002e2ecmascript: Remove the lifetime annotation onMayHaveSideEffects(#8717) (Boshen)0af0267minifier: Side effect detection needs symbols resolution (#8715) (Boshen)
Testing
03229c5minifier: Fix broken tests (#8722) (Boshen)
[0.48.0] - 2025-01-24
Bug Fixes
4ff6e85minifier: Remove expression statementvoid 0(#8602) (Boshen)
Performance
9953ac7minifier: AddLatePeepholeOptimizations(#8651) (Boshen)
[0.47.1] - 2025-01-19
Bug Fixes
7b219a9minifier: Fix dce shadowed undefined (#8582) (Boshen)
[0.47.0] - 2025-01-18
Features
927f43fminifier: Improve.charCodeAt(arg)when arg is valid (#8534) (Boshen)
Bug Fixes
b1d0186minifier: Do not fold!!void b(#8533) (Boshen)
Refactor
8f57929minifier: Mergetry_compress_type_of_equal_stringintotry_minimize_binary(#8561) (sapphi-red)
[0.46.0] - 2025-01-14
Bug Fixes
1d6e84dminifier: Fix incorrectnull.toString()and1n.toString()(#8464) (Boshen)
[0.45.0] - 2025-01-11
Features
438a6e7minifier: Minimize conditions in boolean context (#8381) (Boshen)e88a6bdminifier: Minimize!0 + null !== 1->!0 + null != 1(#8332) (Boshen)922c514minifier: Fold.toString()(#8308) (Boshen)66a2443minifier: Minify sequence expressions (#8305) (camc314)f000596minifier: Minify call expressionstoNumber(#8267) (camc314)cec63e2minifier:{}evals tof64::NaN(Boshen)4d8a08dminifier: Improve constant evaluation (#8252) (Boshen)bd8d677minifier: Minimize~undefined,~null,~true,~false(#8247) (Boshen)f73dc9eminifier: Constant fold'x'.toString()andtrue.toString()(#8246) (Boshen)fc43ec5minifier: Foldstring.length/array.length(#8172) (sapphi-red)6615e1eminifier: Constant foldinstanceof(#8142) (翠 / green)ad9a0a9mininifier: Minimize variants ofa instanceof b == true(#8241) (Boshen)
Bug Fixes
74572deecmascript: Incorrectto_int_32value for Infinity (#8144) (翠 / green)0efc845minifier:+0nproducesTypeError(#8410) (Boshen)7ce6a7cminifier:a in bhas error throwing side effect (#8406) (Boshen)c0a3ddaminifier:instanceofhas error throwing side effect (#8378) (Boshen)5516f7fminifier: Do not fold object comparisons (#8375) (Boshen)05be1fcminifier: Remove incorrect foldExpression::AssignmentExpression(#8211) (Boshen)56b7f13minifier: Do not constant fold0 instanceof F(#8199) (Boshen)
Refactor
1835687ecmascript: Remove unnecessaryusestatement (#8284) (overlookmotel)9a5c66aminifier: Clean up (#8346) (Boshen)
[0.44.0] - 2024-12-25
Features
5397fe9minifier: Constant foldundefined?.bar->undefined(#8075) (Boshen)
[0.42.0] - 2024-12-18
Features
075bd16minifier: Fold bitwise operation (#7908) (翠 / green)
Bug Fixes
4799471minfier: Bigint bitwise operation only works with bigint (#7937) (Boshen)
Refactor
3858221global: Sort imports (#7883) (overlookmotel)
Styling
7fb9d47rust:cargo +nightly fmt(#7877) (Boshen)
[0.39.0] - 2024-12-04
b0e1c03ast: [BREAKING] AddStringLiteral::rawfield (#7393) (Boshen)
Features
24189f2ecma: Implement array join method (#6936) (7086cmd)
Testing
9d6e14becmascript: Move tests tooxc_minifierdue to cyclic dependency withoxc_parser(#7542) (Boshen)
[0.35.0] - 2024-11-04
Bug Fixes
da199c7ecmascript: Allow getting PropName for object methods (#6967) (camchenry)
[0.34.0] - 2024-10-26
Features
4429754ecmascript: Constant evalnullto number (#6879) (Boshen)fd57e00ecmascript: Add abstract_relational_comparison to dce (#6846) (Boshen)8bcaf59minifier: Late peeophole optimization (#6882) (Boshen)fccf82eminifier: Implement foldingsubstringstring fns (#6869) (camc314)e6a5a1bminifier: Implement foldingcharCodeAtstring fns (#6475) (camc314)
Bug Fixes
a47c70eminifier: Fix remaining runtime bugs (#6855) (Boshen)686727fminifier: Reference read has side effect (#6851) (Boshen)
Refactor
423d54crust: Remove the annoyingclippy::wildcard_imports(#6860) (Boshen)
[0.33.0] - 2024-10-24
Refactor
8b25131minifier: Binary operations useConstantEvaluation(#6700) (Boshen)
[0.32.0] - 2024-10-19
Features
15c04e5ecmascript: Add feature flag for constant evaluation (Boshen)d11770decmascript: AddStringToNumber(#6576) (Boshen)e561880ecmascript: Add constant_evaluation and side_effects code (#6550) (Boshen)3556062ecmascript: AddConstantEvaluation(#6549) (Boshen)39c2e66ecmascript: AddToBigIntandStringToBigInt(#6508) (Boshen)6f22538ecmascript: AddToBoolean,ToNumber,ToString(#6502) (Boshen)071e564minifier: Finish implementing folding object expressions (#6586) (camc314)096e590minifier: Implement foldingcharAtstring fns (#6436) (camc314)
Refactor
aa6ba24ecmascript: Improve string to number conversion (#6577) (magic-akari)6d041fbecmascript: RemoveNumberValue(#6519) (Boshen)856cab5ecmascript: Move ToInt32 fromoxc_syntaxtooxc_ecmascript(#6471) (Boshen)1ba2a24ecmascript: RemoveHasProtowhich is not part of the spec (#6470) (Boshen)f4cdc56minifier: Use constant folding unary expression fromoxc_ecmascript(#6647) (Boshen)bbca743minifier: Move string methods tooxc_ecmascript(#6472) (Boshen)
[0.31.0] - 2024-10-08
Features
9e62396syntax_operations: Add crateoxc_ecmascript(#6202) (Boshen)