feat(minifier): expand de morgan's optimization to allow move of ! - #25930
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
47bf089 to
6e5a22d
Compare
6e5a22d to
9316821
Compare
!
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 931682141c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
/monitor-oxc run |
Monitor OxcCommit:
|
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
### 💥 BREAKING CHANGES - a31567a allocator: [**BREAKING**] Make `Allocator::cursor_ptr` and `data_end_ptr` private (#26081) (overlookmotel) ### 🚀 Features - 784e9fa minifier: Invert `!0` and `!1` in place for boolean context to `1` and `0` (#26050) (Armano) - 1e902cc minifier: Expand fold leading assignments into the var decl (#26142) (Armano) - 3ed4f6a minifier: Expand de morgan's optimization to allow move of `!` (#25930) (Armano) - 5672585 parser: Attach all comments to nodes (#25944) (camc314) ### 🐛 Bug Fixes - 4adfb4c semantic: Validate chained continue labels (#26157) (camc314) - b874f48 ecmascript: `Math.round` only exact half ties (#26150) (camc314) - a625378 minifier: Coerce omitted `indexOf` search argument (#26149) (camc314) - dc7398b ecmascript: Trim trailing whitespace in string to number (#26148) (camc314) - 243b685 transformer/object-rest: Lower multiple declarators correctly (#26147) (camc314) - dc09a3a parser: Avoid panic on escaped string export names (#26146) (camc314) - e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314) - c3dedc9 semantic: Skip function body bindings in parameters (#26099) (Dunqing) - e74de61 transform-react: Match Babel diagnostic reporting (#26128) (Boshen) - d5163d0 parser: Correctly classify unapplied pure annotations (#26084) (camc314) - 8531b9b linter/plugins: Alter method for obtaining mutable `Program` when sending AST to JS plugins (#26077) (overlookmotel) - 9b51658 regular_expression: Allow oversized decimal escape for Annex B (#26070) (leaysgur) - c8de4df regular_expression: Reject oversized backreferences (#26055) (camc314) ### ⚡ Performance - ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen) - 07a0793 packages/codegen: Flatten output in chunks (#26109) (overlookmotel) - 487427a packages/codegen: Faster string flattening (#26108) (overlookmotel) - 7785583 packages/codegen: Ensure indent strings are flattened (#26107) (overlookmotel) - 0dd4db3 packages/codegen: Store mapping positions in an `Int32Array` (#26085) (overlookmotel)
Expand negation to include move of
!operator to inner childrendelta calculation is dependent on boolean context
!awill be converted toa(-1 delta)!awill be converted to!!a(+1 delta)ref #25294