From 48108a4da138f03e182cc928b8d9a8e8feae06be Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Fri, 14 Nov 2025 17:07:51 +0100 Subject: [PATCH 1/2] Turbopack: mark more modules as side effect free --- .../crates/turbopack-ecmascript/src/async_chunk/module.rs | 8 ++++++++ .../turbopack-ecmascript/src/inlined_bytes_module.rs | 8 ++++++++ .../turbopack-ecmascript/src/manifest/chunk_asset.rs | 8 ++++++++ .../src/references/require_context.rs | 8 ++++++++ .../turbopack-ecmascript/src/worker_chunk/module.rs | 8 ++++++++ turbopack/crates/turbopack-static/src/css.rs | 8 ++++++++ turbopack/crates/turbopack-static/src/ecma.rs | 8 ++++++++ 7 files changed, 56 insertions(+) diff --git a/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs b/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs index a1d7fc9035031..0aeedcb5b729f 100644 --- a/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs @@ -60,6 +60,14 @@ impl Module for AsyncLoaderModule { .await?, )])) } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs index 2379e82f46af4..c91b14c1a6c58 100644 --- a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs @@ -52,6 +52,14 @@ impl Module for InlinedBytesJsModule { ) -> Vc { Vc::cell(true) } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs index a2e034de6c00c..fb4dde48a5bc3 100644 --- a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs +++ b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs @@ -146,6 +146,14 @@ impl Module for ManifestAsyncModule { .await?, )) } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs b/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs index 7d5c3f535517d..459ff57c858eb 100644 --- a/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs +++ b/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs @@ -421,6 +421,14 @@ impl Module for RequireContextAsset { .collect(), )) } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs index 1e9072b9a0c2f..ad61ea98d5c41 100644 --- a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs @@ -51,6 +51,14 @@ impl Module for WorkerLoaderModule { .await?, )])) } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-static/src/css.rs b/turbopack/crates/turbopack-static/src/css.rs index 92b9b39351e1d..beb2c191c132f 100644 --- a/turbopack/crates/turbopack-static/src/css.rs +++ b/turbopack/crates/turbopack-static/src/css.rs @@ -45,6 +45,14 @@ impl Module for StaticUrlCssModule { } ident } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-static/src/ecma.rs b/turbopack/crates/turbopack-static/src/ecma.rs index 2d8aa557cec5f..d7268d557b3a1 100644 --- a/turbopack/crates/turbopack-static/src/ecma.rs +++ b/turbopack/crates/turbopack-static/src/ecma.rs @@ -57,6 +57,14 @@ impl Module for StaticUrlJsModule { } ident } + + #[turbo_tasks::function] + fn is_marked_as_side_effect_free( + self: Vc, + _side_effect_free_packages: Vc, + ) -> Vc { + Vc::cell(true) + } } #[turbo_tasks::value_impl] From 16bf5ec7404bfa24e21ea00327a253854b9365bc Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Mon, 17 Nov 2025 10:29:17 +0100 Subject: [PATCH 2/2] fixup --- .../crates/turbopack-ecmascript/src/async_chunk/module.rs | 1 + .../turbopack-ecmascript/src/inlined_bytes_module.rs | 8 -------- .../turbopack-ecmascript/src/manifest/chunk_asset.rs | 1 + .../src/references/require_context.rs | 2 +- .../turbopack-ecmascript/src/worker_chunk/module.rs | 1 + turbopack/crates/turbopack-static/src/css.rs | 1 + turbopack/crates/turbopack-static/src/ecma.rs | 1 + 7 files changed, 6 insertions(+), 9 deletions(-) diff --git a/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs b/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs index 0aeedcb5b729f..09941275e6f80 100644 --- a/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/async_chunk/module.rs @@ -1,6 +1,7 @@ use anyhow::Result; use turbo_rcstr::rcstr; use turbo_tasks::{ResolvedVc, Vc}; +use turbo_tasks_fs::glob::Glob; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::{ChunkableModule, ChunkingContext, availability_info::AvailabilityInfo}, diff --git a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs index c91b14c1a6c58..2379e82f46af4 100644 --- a/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/inlined_bytes_module.rs @@ -52,14 +52,6 @@ impl Module for InlinedBytesJsModule { ) -> Vc { Vc::cell(true) } - - #[turbo_tasks::function] - fn is_marked_as_side_effect_free( - self: Vc, - _side_effect_free_packages: Vc, - ) -> Vc { - Vc::cell(true) - } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs index fb4dde48a5bc3..9b1d517998fc8 100644 --- a/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs +++ b/turbopack/crates/turbopack-ecmascript/src/manifest/chunk_asset.rs @@ -1,6 +1,7 @@ use anyhow::Result; use turbo_rcstr::{RcStr, rcstr}; use turbo_tasks::{ResolvedVc, TryJoinIterExt, Vc}; +use turbo_tasks_fs::glob::Glob; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::{ diff --git a/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs b/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs index 459ff57c858eb..7156e2eb32b57 100644 --- a/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs +++ b/turbopack/crates/turbopack-ecmascript/src/references/require_context.rs @@ -19,7 +19,7 @@ use turbo_tasks::{ FxIndexMap, NonLocalValue, ResolvedVc, ValueToString, Vc, debug::ValueDebugFormat, trace::TraceRawVcs, }; -use turbo_tasks_fs::{DirectoryContent, DirectoryEntry, FileSystemPath}; +use turbo_tasks_fs::{DirectoryContent, DirectoryEntry, FileSystemPath, glob::Glob}; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::{ diff --git a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs index ad61ea98d5c41..aa52ee45dfe4b 100644 --- a/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs +++ b/turbopack/crates/turbopack-ecmascript/src/worker_chunk/module.rs @@ -1,6 +1,7 @@ use anyhow::Result; use turbo_rcstr::{RcStr, rcstr}; use turbo_tasks::{ResolvedVc, ValueToString, Vc}; +use turbo_tasks_fs::glob::Glob; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::{ diff --git a/turbopack/crates/turbopack-static/src/css.rs b/turbopack/crates/turbopack-static/src/css.rs index beb2c191c132f..d44adc0e6959b 100644 --- a/turbopack/crates/turbopack-static/src/css.rs +++ b/turbopack/crates/turbopack-static/src/css.rs @@ -1,5 +1,6 @@ use turbo_rcstr::{RcStr, rcstr}; use turbo_tasks::{ResolvedVc, Vc}; +use turbo_tasks_fs::glob::Glob; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::ChunkingContext, diff --git a/turbopack/crates/turbopack-static/src/ecma.rs b/turbopack/crates/turbopack-static/src/ecma.rs index d7268d557b3a1..3f76811d61701 100644 --- a/turbopack/crates/turbopack-static/src/ecma.rs +++ b/turbopack/crates/turbopack-static/src/ecma.rs @@ -1,6 +1,7 @@ use anyhow::Result; use turbo_rcstr::{RcStr, rcstr}; use turbo_tasks::{ResolvedVc, Vc}; +use turbo_tasks_fs::glob::Glob; use turbopack_core::{ asset::{Asset, AssetContent}, chunk::{ChunkItem, ChunkType, ChunkableModule, ChunkingContext},