test: add test for why PureAnnotation is needed in execution order check#8933
Merged
graphite-app[bot] merged 1 commit intomainfrom Mar 27, 2026
Merged
test: add test for why PureAnnotation is needed in execution order check#8933graphite-app[bot] merged 1 commit intomainfrom
graphite-app[bot] merged 1 commit intomainfrom
Conversation
Member
Author
How to use the Graphite Merge QueueAdd the label graphite: merge-when-ready to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
✅ Deploy Preview for rolldown-rs canceled.
|
h-a-n-a
approved these changes
Mar 27, 2026
Contributor
Merge activity
|
…eck (#8933) ## Summary - Adds an integration test combining scenarios from #4920 and #5303 to demonstrate that `PureAnnotation` must be included in the `ExecutionOrderSensitive` check. - A `/*#__PURE__*/` call to a local function that reads a global variable set by another module must still trigger wrapping, otherwise execution order is broken. Ref: #8909 (comment) ## Test plan - [x] New test `pure_annotation_local_fn_reads_global` passes with `just dt` - [x] Snapshot confirms `dep.js` is wrapped with `__esmMin` in both default and `onDemandWrapping` variants 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ceab728 to
114437e
Compare
shulaoda
added a commit
that referenced
this pull request
Apr 1, 2026
## [1.0.0-rc.13] - 2026-04-01 ### 🚀 Features - add friendly error for unloadable virtual modules (#8955) by @sapphi-red - better error message for unsupported CSS error (#8911) by @sapphi-red ### 🐛 Bug Fixes - prevent chunk merging from leaking entry side effects (#8979) by @IWANABETHATGUY - correct inlining based on module's def format and esModule flag (#8975) by @h-a-n-a - generate init calls for excluded re-exports in strict execution order (#8858) by @IWANABETHATGUY - consistent order for `meta.chunks` in `renderChunk` hook (#8956) by @sapphi-red - subpath imports in glob imports failing to find files (#8885) by @kalvenschraut - browser: bundle binding types in dts output (#8930) by @nyan-left - ci: guard artifact download step in `vite-test-ubuntu` when build is skipped (#8934) by @Copilot - track CJS re-export import records to fix inline const and tree-shaking (#8925) by @h-a-n-a - use ImportKind::Import for common-chunk root computation (#8899) by @IWANABETHATGUY - watch: clear emitted_filenames between rebuilds (#8914) by @IWANABETHATGUY - ci: cache esbuild snapshots to avoid 429 rate limiting (#8921) by @IWANABETHATGUY - always check circular deps in chunk optimizer (#8915) by @IWANABETHATGUY - don't mark calls to reassigned bindings as pure (#8917) by @IWANABETHATGUY - magic-string: throw TypeError for non-string content args (#8905) by @IWANABETHATGUY - magic-string: add split-point validation and overwrite/update options (#8904) by @IWANABETHATGUY ### 🚜 Refactor - pre-compute has_side_effects on ChunkCandidate (#8981) by @IWANABETHATGUY - cleanup and simplify in dynamic_import.rs (#8927) by @ulrichstark - rename came_from_cjs to came_from_commonjs for consistency (#8938) by @IWANABETHATGUY - inline `create_ecma_view` return destructuring and remove redundant binding (#8932) by @shulaoda ### 📚 Documentation - document ensure_lazy_module_initialization_order in code-splitting design doc (#8931) by @IWANABETHATGUY ### 🧪 Testing - add regression test for runtime helper circular dependency (#8958) by @h-a-n-a - enable 8 previously-skipped MagicString remove tests (#8945) by @IWANABETHATGUY - add test for why PureAnnotation is needed in execution order check (#8933) by @IWANABETHATGUY ### ⚙️ Miscellaneous Tasks - add `@emnapi/runtime` and `@emnapi/core` as direct deps of `@rolldown/browser` (#8978) by @Copilot - deps: update dependency vite-plus to v0.1.15 (#8970) by @renovate[bot] - deps: update dependency oxfmt to ^0.43.0 (#8969) by @renovate[bot] - deps: upgrade oxc to 0.123.0 (#8967) by @shulaoda - justfile: deduplicate update-submodule as alias of setup-submodule (#8968) by @shulaoda - deps: update rollup submodule for tests to v4.60.1 (#8965) by @sapphi-red - deps: update test262 submodule for tests (#8966) by @sapphi-red - remove unused `type-check` scripts (#8957) by @sapphi-red - deps: update actions/cache action to v5 (#8953) by @renovate[bot] - deps: update npm packages to v6 (major) (#8954) by @renovate[bot] - deps: update npm packages (#8948) by @renovate[bot] - deps: update rust crates (#8949) by @renovate[bot] - deps: update github-actions (#8947) by @renovate[bot] - deps: update napi (#8943) by @renovate[bot] - deps: update dependency rolldown-plugin-dts to ^0.23.0 (#8944) by @renovate[bot] - regenerate testing snapshots (#8928) by @ulrichstark - deps: update dependency rust to v1.94.1 (#8923) by @renovate[bot] ### ❤️ New Contributors * @kalvenschraut made their first contribution in [#8885](#8885) * @nyan-left made their first contribution in [#8930](#8930) Co-authored-by: shulaoda <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
strictExecutionOrder: truemakes re-exported values undefined #4920 and [Bug]: modules that are sideeffect free but relies on the execution order is not wrapped #5303 to demonstrate thatPureAnnotationmust be included in theExecutionOrderSensitivecheck./*#__PURE__*/call to a local function that reads a global variable set by another module must still trigger wrapping, otherwise execution order is broken.Ref: #8909 (comment)
Test plan
pure_annotation_local_fn_reads_globalpasses withjust dtdep.jsis wrapped with__esmMinin both default andonDemandWrappingvariants🤖 Generated with Claude Code