#5948·rollup

`/*#__PURE__*/` annotation ineffective for tree-shaking top-level `await import().then(...)` expressions

Author: GaubeeCreated May 6, 2025Updated May 21, 2026
Labelst¹ 🐞 bugt⁸ ⋅ triage

Rollup Version

4.40.2

Operating System (or Browser)

Node Version (if applicable)

No response

Link To Reproduction

https://rollupjs.org/repl/?version=4.40.2&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QmElN0QlMjBmcm9tJTIwJy4lMkZtaXguanMnJTVDbmNvbnNvbGUubG9nKGEpJTIyJTJDJTIyaXNFbnRyeSUyMiUzQXRydWUlMkMlMjJuYW1lJTIyJTNBJTIybWFpbi5qcyUyMiU3RCUyQyU3QiUyMmNvZGUlMjIlM0ElMjJleHBvcnQlMjBjb25zdCUyMG5hdGl2ZV9hJTIwJTNEJTIwMSU1Q25leHBvcnQlMjBjb25zdCUyMHNoaW1fYSUyMCUzRCUyMDIlNUNuZXhwb3J0JTIwY29uc3QlMjBuYXRpdmVfYiUyMCUzRCUyMDElNUNuZXhwb3J0JTIwY29uc3QlMjBzaGltX2IlMjAlM0QlMjAyJTVDbmV4cG9ydCUyMGNvbnN0JTIwb3RoZXIlMjAlM0QlMjAzJTIyJTJDJTIyaXNFbnRyeSUyMiUzQWZhbHNlJTJDJTIybmFtZSUyMiUzQSUyMmFsbC5qcyUyMiU3RCUyQyU3QiUyMmNvZGUlMjIlM0ElMjJleHBvcnQlMjBjb25zdCUyMGElMjAlM0QlMjAlMkYqJTIzX19QVVJFX18qJTJGYXdhaXQlMjBpbXBvcnQoJy4lMkZhbGwuanMnKS50aGVuKCglN0JuYXRpdmVfYSUyQ3NoaW1fYSU3RCklM0QlM0VuYXRpdmVfYSUzRm5hdGl2ZV9hJTNBc2hpbV9hKSU1Q25leHBvcnQlMjBjb25zdCUyMGIlMjAlM0QlMjAlMkYqJTIzX19QVVJFX18qJTJGYXdhaXQlMjBpbXBvcnQoJy4lMkZhbGwuanMnKS50aGVuKCglN0JuYXRpdmVfYiUyQ3NoaW1fYiU3RCklM0QlM0VuYXRpdmVfYiUzRm5hdGl2ZV9iJTNBc2hpbV9iKSUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJtaXguanMlMjIlN0QlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyb3V0cHV0JTIyJTNBJTdCJTIyZm9ybWF0JTIyJTNBJTIyZXMlMjIlN0QlN0QlN0Q=

Expected Behaviour

/*#__PURE__*/await import is pure function call

javascript
const a = await import('./all-DnWgraJt.js').then(({native_a,shim_a})=>native_a?native_a:shim_a);
// await import('./all-DnWgraJt.js').then(({native_b,shim_b})=>native_b?native_b:shim_b);

console.log(a);

Actual Behaviour

javascript
const a = await import('./all-DnWgraJt.js').then(({native_a,shim_a})=>native_a?native_a:shim_a);
await import('./all-DnWgraJt.js').then(({native_b,shim_b})=>native_b?native_b:shim_b); // should be removed

console.log(a);