Conversation
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
✅ Deploy Preview for rolldown-rs canceled.
|
6bb4d2d to
451c0b4
Compare
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
1bad24d to
97ccf6d
Compare
|
@claude[agent] fix oxc upgrade compile errors |
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
Fixed the oxc 0.125.0 compilation errors in commits 2e444d1 and ac26587. Changes made:
All compilation errors are resolved. The changes are ready for review. |
|
@claude[agent] commit the new generated |
Done! Regenerated The generated file now includes the new |
|
@claude[agent] fix ci |
Fixed the CI failures in commit 805e530:
The CI should pass now. |
Dunqing
left a comment
There was a problem hiding this comment.
I've reviewed propertyWriteSideEffects and enum related changes and all look good to me.
- Fix import paths: CompactStr, Ident, and Str moved from oxc::span - CompactStr and Ident now come from oxc_str crate - Str moved to oxc::ast::ast - Add oxc_str dependency to workspace and affected crates - Fix TypeScriptOptions: add optimize_enums field - Fix TreeShakeOptions: add property_write_side_effects field (bool) - Update Ident constant creation to use static_ident! macro - Run codegen to update generated files with new version Agent-Logs-Url: https://github.com/rolldown/rolldown/sessions/02210b8f-d3a1-4d4d-a6fb-9bdaf9d6d6b1 Co-authored-by: Brooooooklyn <3468483+Brooooooklyn@users.noreply.github.com>
In oxc 0.125.0, `this` is now considered to potentially have side effects because it may be used in contexts where accessing `this` could throw. Agent-Logs-Url: https://github.com/rolldown/rolldown/sessions/02210b8f-d3a1-4d4d-a6fb-9bdaf9d6d6b1 Co-authored-by: Brooooooklyn <3468483+Brooooooklyn@users.noreply.github.com>
Add propertyWriteSideEffects field to TreeShakeOptions interface after running `just build-rolldown` to regenerate TypeScript bindings. Agent-Logs-Url: https://github.com/rolldown/rolldown/sessions/d9fc8b5e-2ba3-4b4a-a95c-31e3282052b0 Co-authored-by: Brooooooklyn <3468483+Brooooooklyn@users.noreply.github.com>
… import Co-authored-by: Dunqing <29533304+Dunqing@users.noreply.github.com>
Merging this PR will not alter performance
Comparing Footnotes
|
| counter.value++; | ||
| (class { | ||
| static { | ||
| ++counter.count; | ||
| } | ||
| }); | ||
| counter.another++; | ||
| console.log(counter); |
There was a problem hiding this comment.
I think we shouldn't remove these because counter is used.
There was a problem hiding this comment.
[counter.another++] = 123; // Should not be tree-shaken, since counter is used
Oxc doesn't seem to handle this correctly. We need to disable property_write_side_effects here until we fix it in Oxc.
There was a problem hiding this comment.
I think both counter.value++ and ++counter.count should be kept as well, not only counter.another++. I think the comment for counter.value++ was not updated correctly in 4838d5f.
console.log(counter) is added in that commit so counter.value++ shouldn't be removed anymore.
There was a problem hiding this comment.
you are right, all will affect reading
…ectful `obj.prop++` performs an implicit GetValue + ToNumeric + PutValue. The ToNumeric coercion alone can invoke `valueOf`/`Symbol.toPrimitive` on the old value, and the read/write may trigger getters, setters, or Proxy traps. Previously `UpdateExpression::may_have_side_effects` only checked `property_write_side_effects()` and treated the update as free when disabled — letting the minifier drop `counter.value++` even when `counter` is externally observable. Terser, esbuild, Rollup, and SWC all hardcode `++`/`--` as unconditionally side-effectful; match that (mirrors how compound assignments like `a.b += 1` are already handled one impl above). Reported via rolldown/rolldown#9094.
…ectful `obj.prop++` performs an implicit GetValue + ToNumeric + PutValue. The ToNumeric coercion alone can invoke `valueOf`/`Symbol.toPrimitive` on the old value, and the read/write may trigger getters, setters, or Proxy traps. Previously `UpdateExpression::may_have_side_effects` only checked `property_write_side_effects()` and treated the update as free when disabled — letting the minifier drop `counter.value++` even when `counter` is externally observable. Terser, esbuild, Rollup, and SWC all hardcode `++`/`--` as unconditionally side-effectful; match that (mirrors how compound assignments like `a.b += 1` are already handled one impl above). Reported via rolldown/rolldown#9094.
…ectful (#21456) ## Summary `obj.prop++` performs an implicit `GetValue` + `ToNumeric` + `PutValue`. The `ToNumeric` coercion alone can invoke `valueOf`/`Symbol.toPrimitive` on the old value, and the read/write may trigger getters, setters, or Proxy traps. Previously `UpdateExpression::may_have_side_effects` only checked `property_write_side_effects()` and treated the update as free when disabled — letting the minifier drop `counter.value++` even when `counter` is externally observable. ## Fix Return `true` unconditionally for `UpdateExpression`. Terser, esbuild, Rollup, and SWC all hardcode `++`/`--` as unconditionally side-effectful — this matches their behavior, and mirrors how compound assignments like `a.b += 1` are already handled one impl above (`AssignmentExpression`). ## Impact Under rolldown's tree-shake config (`propertyWriteSideEffects: false`), these are now correctly preserved instead of being dropped: ```js counter.value++; (class { static { ++counter.count; } }); class A { [counter.another++] = 123; } ``` ## Reported rolldown/rolldown#9094 ([comment](rolldown/rolldown#9094 (comment)))
Upgrade oxc to 0.126.0 to solve #9094 (comment) --------- Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
## [1.0.0-rc.16] - 2026-04-16 ### 🚀 Features - const enum cross-module inlining support (#8796) by @Dunqing - implement module tagging system for code splitting (#9045) by @hyf0 ### 🐛 Bug Fixes - rolldown_plugin_vite_manifest: handle duplicate chunk names for CSS entries (#9059) by @sapphi-red - improve error message for invalid return values in function options (#9125) by @shulaoda - await async export-star init wrappers (#9101) by @thezzisu - never panic during diagnostic emission (#9091) by @IWANABETHATGUY - include array rest pattern in binding_identifiers (#9112) by @IWANABETHATGUY - rolldown: set worker thread count with ROLLDOWN_WORKER_THREADS (#9086) by @fpotter - rolldown_plugin_lazy_compilation: escape request ID in proxy modules (#9102) by @h-a-n-a - treat namespace member access as side-effect-free (#9099) by @IWANABETHATGUY - relax overly conservative side-effect leak check in chunk optimizer (#9085) by @IWANABETHATGUY - runtime: release `cb` reference after `__commonJS` factory initialization (#9067) by @hyf0-agent - `@__NO_SIDE_EFFECTS__` wrapper should not remove dynamic imports (#9075) by @IWANABETHATGUY - rolldown_plugin_vite_import_glob: use POSIX path join/normalize for glob resolution (#9077) by @shulaoda - emit REQUIRE_TLA error when require() loads a module with top-level await (#9071) by @jaehafe - emit namespace declaration for empty modules in manual chunks (#8993) by @privatenumber - rolldown_plugin_vite_import_glob: keep common base on path segment boundary (#9070) by @shulaoda - prevent circular runtime helper imports during facade elimination (#8989) (#9057) by @IWANABETHATGUY - correct circular dependency check in facade elimination (#9047) by @h-a-n-a - docs: correct dead link in CodeSplittingGroup.tags JSDoc (#9051) by @hyf0 - emit DUPLICATE_SHEBANG warning when banner contains shebang (#9026) by @IWANABETHATGUY ### 🚜 Refactor - use semantic reference flags for member write detection (#9060) by @Dunqing - extract UsedSymbolRefs newtype wrapper (#9130) by @IWANABETHATGUY - dedupe await wrapping in export-star init emit (#9119) by @IWANABETHATGUY - calculate side-effect-free function symbols on demand (#9120) by @IWANABETHATGUY - extract duplicated top-level await handling into shared helper (#9087) by @IWANABETHATGUY - rolldown_plugin_vite_import_glob: use split_first for get_common_base (#9069) by @shulaoda - simplify ESM init deduplication with idiomatic insert check (#9044) by @IWANABETHATGUY ### 📚 Documentation - document runtime module placement strategy in code-splitting design (#9062) by @IWANABETHATGUY - clarify `options` hook behavior difference with Rollup in watch mode (#9053) by @sapphi-red - meta/design: introduce module tags (#9017) by @hyf0 ### ⚡ Performance - convert `generate_transitive_esm_init` to iterative (#9046) by @IWANABETHATGUY ### 🧪 Testing - merge strict/non_strict test variants using configVariants (#9089) by @IWANABETHATGUY ### ⚙️ Miscellaneous Tasks - disable Renovate auto-updates for oxc packages (#9129) by @IWANABETHATGUY - upgrade oxc@0.126.0 (#9127) by @Dunqing - deps: update napi to v3.8.5 (#9126) by @renovate[bot] - deps: update dependency @napi-rs/cli to v3.6.2 (#9123) by @renovate[bot] - move lazy-compilation design doc (#9117) by @h-a-n-a - deps: update dependency vite-plus to v0.1.18 (#9118) by @renovate[bot] - deps: update dependency vite-plus to v0.1.17 (#9113) by @renovate[bot] - deps: update oxc to v0.125.0 (#9094) by @renovate[bot] - deps: update dependency follow-redirects to v1.16.0 [security] (#9103) by @renovate[bot] - deps: update test262 submodule for tests (#9097) by @sapphi-red - deps: update crate-ci/typos action to v1.45.1 (#9096) by @renovate[bot] - deps: update rust crates (#9081) by @renovate[bot] - deps: update npm packages (#9080) by @renovate[bot] - remove outdated TODO in determine_module_exports_kind (#9072) by @jaehafe - rust/test: support `extendedTests: false` shorthand in test config (#9050) by @hyf0 - ci: extract shared infra-changes anchor in path filters (#9054) by @hyf0 - add docs build check to catch dead links in PRs (#9052) by @hyf0 ### ❤️ New Contributors * @thezzisu made their first contribution in [#9101](#9101) * @fpotter made their first contribution in [#9086](#9086) * @jaehafe made their first contribution in [#9071](#9071) * @privatenumber made their first contribution in [#8993](#8993) Co-authored-by: shulaoda <165626830+shulaoda@users.noreply.github.com>
This PR contains the following updates:
=0.124.0→=0.125.0=0.124.0→=0.125.00.124.0→0.125.0=0.124.0→=0.125.0=0.124.0→=0.125.0=0.124.0→=0.125.00.124.0→0.125.00.124.0→0.125.00.124.0→0.125.00.124.0→0.125.00.124.0→0.125.00.124.0→0.125.00.124.0→0.125.0Release Notes
oxc-project/oxc (oxc-minify)
v0.125.0🚀 Features
f134e24minifier: Supportproperty_write_side_effectsoption to drop unused property assignments (#20773) (Dunqing)oxc-project/oxc (oxc-parser)
v0.125.0💥 BREAKING CHANGES
382958aspan: [BREAKING] Remove re-exports of string types fromoxc_spancrate (#21246) (overlookmotel)⚡ Performance
addcd02napi/parser, linter/plugins: Raw transfer deserializer forVecs use shift instead of multiply where possible (#21142) (overlookmotel)3068dednapi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)eb400b8napi/parser, linter/plugins: Removeuint32buffer view (#21140) (overlookmotel)2675085napi/parser: Lazy deserialization use onlyInt32Array(#21139) (overlookmotel)5b35a53napi/parser: Deserializing tokens use onlyint32array (#21138) (overlookmotel)f163d10parser: Tokens raw deserialization useInt32Array(#21137) (overlookmotel)7a86613linter/plugins: UseInt32Arrays for tokens and comments buffers (#21136) (overlookmotel)8c51121napi/parser, linter/plugins: Raw transfer deserializeSpanfields asi32s (#21135) (overlookmotel)bc1bcddnapi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel)c0278abnapi/parser, linter/plugins: UseInt32Arrayin raw transfer deserializer (#21132) (overlookmotel)43482c7linter/plugins: Use>>not>>>in binary search loops (#21129) (overlookmotel)oxc-project/oxc (oxc-transform)
v0.125.0🚀 Features
e7e1aeatransformer/typescript: Addoptimize_enumsoption for regular enum inlining (#20539) (Dunqing)Configuration
📅 Schedule: (in timezone Asia/Shanghai)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.