Skip to content

Conversation

@lukesandberg
Copy link
Contributor

@lukesandberg lukesandberg commented Dec 12, 2025

Refactor the is_marked_side_effect_free API

  • Rename side_effects
  • Change it to return ModuleSideEffects instead of a bool
  • Remove the side_effect_packages from its parameters, instead arrange to pass that to the EcmascriptModule constructor since that is where we need it.
    • This cleans up callsites and fixes a tiny issue where we construct that glob multiple times.

…turn ModuleSideEffects enum

This commit refactors the Module trait API to be more expressive:
- Renames is_marked_as_side_effect_free() -> side_effects()
- Changes return type from Vc<bool> -> Vc<ModuleSideEffects>
- Adds ModuleSideEffects enum with three states:
  - ModuleEvaluationIsSideEffectFree: Local analysis says side-effect-free
  - SideEffectFree: Marked/determined to be side-effect-free
  - SideEffectful: Has side effects
- Threads side_effect_free_packages through EcmascriptModuleAsset constructors
- Implements the new API across all Module types

This is a pure refactoring with no behavior changes.
@nextjs-bot nextjs-bot added created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js. labels Dec 12, 2025
Copy link
Contributor Author

@nextjs-bot
Copy link
Collaborator

Allow CI Workflow Run

  • approve CI run for commit: 53499b8

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

1 similar comment
@nextjs-bot
Copy link
Collaborator

Allow CI Workflow Run

  • approve CI run for commit: 53499b8

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@nextjs-bot
Copy link
Collaborator

nextjs-bot commented Dec 12, 2025

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
buildDuration 16.9s 15.1s N/A
buildDurationCached 13.9s 11s N/A
nodeModulesSize 457 MB 457 MB
nextStartRea..uration (ms) 712ms 718ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
4765.HASH.js gzip 169 B 169 B
6566-HASH.js gzip 5.4 kB 5.38 kB N/A
7740-HASH.js gzip 53.2 kB 52.5 kB N/A
8258-HASH.js gzip 4.47 kB 4.48 kB N/A
b0b1acf2-HASH.js gzip 62.3 kB 62.3 kB N/A
framework-HASH.js gzip 59.7 kB 59.7 kB N/A
main-app-HASH.js gzip 255 B 252 B N/A
main-HASH.js gzip 38.5 kB 38.8 kB ⚠️ +260 B
webpack-HASH.js gzip 1.69 kB 1.69 kB
Overall change 40.4 kB 40.6 kB ⚠️ +260 B
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
_app-HASH.js gzip 193 B 192 B N/A
_error-HASH.js gzip 181 B 182 B N/A
css-HASH.js gzip 335 B 336 B N/A
dynamic-HASH.js gzip 1.81 kB 1.8 kB N/A
edge-ssr-HASH.js gzip 254 B 256 B N/A
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 385 B 383 B N/A
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.5 kB 2.5 kB N/A
routerDirect..HASH.js gzip 320 B 317 B N/A
script-HASH.js gzip 386 B 384 B N/A
withRouter-HASH.js gzip 315 B 314 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.29 kB 1.29 kB
Client Build Manifests
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
_buildManifest.js gzip 737 B 735 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
index.html gzip 521 B 522 B N/A
link.html gzip 537 B 537 B
withRouter.html gzip 518 B 519 B N/A
Overall change 537 B 537 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
edge-ssr.js gzip 124 kB 125 kB ⚠️ +385 B
page.js gzip 236 kB 236 kB N/A
Overall change 124 kB 125 kB ⚠️ +385 B
Middleware size Overall increase ⚠️
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
middleware-b..fest.js gzip 657 B 656 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 32.8 kB 33 kB ⚠️ +250 B
edge-runtime..pack.js gzip 846 B 846 B
Overall change 33.6 kB 33.9 kB ⚠️ +250 B
Next Runtimes
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
app-page-exp...dev.js gzip 301 kB 301 kB N/A
app-page-exp..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 301 kB 301 kB N/A
app-page-tur..prod.js gzip 155 kB 155 kB
app-page-tur...dev.js gzip 298 kB 298 kB
app-page-tur..prod.js gzip 153 kB 153 kB
app-page.run...dev.js gzip 298 kB 298 kB N/A
app-page.run..prod.js gzip 153 kB 153 kB
app-route-ex...dev.js gzip 68.6 kB 68.6 kB
app-route-ex..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.7 kB 68.7 kB
app-route-tu..prod.js gzip 47.5 kB 47.5 kB
app-route-tu...dev.js gzip 68.3 kB 68.3 kB
app-route-tu..prod.js gzip 47.2 kB 47.2 kB
app-route.ru...dev.js gzip 68.2 kB 68.2 kB
app-route.ru..prod.js gzip 47.2 kB 47.2 kB
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 328 B 328 B
dist_client_...dev.js gzip 320 B 320 B
dist_client_...dev.js gzip 318 B 318 B
pages-api-tu...dev.js gzip 41 kB 41 kB
pages-api-tu..prod.js gzip 31.1 kB 31.1 kB
pages-api.ru...dev.js gzip 41 kB 41 kB
pages-api.ru..prod.js gzip 31.1 kB 31.1 kB
pages-turbo....dev.js gzip 50.5 kB 50.5 kB
pages-turbo...prod.js gzip 38 kB 38 kB
pages.runtim...dev.js gzip 50.5 kB 50.5 kB
pages.runtim..prod.js gzip 38 kB 38 kB
server.runti..prod.js gzip 59.8 kB 59.8 kB
Overall change 1.76 MB 1.76 MB
build cache Overall increase ⚠️
vercel/next.js canary vercel/next.js refactor_side_effects_api Change
0.pack gzip 3.1 MB 3.11 MB ⚠️ +6.12 kB
index.pack gzip 94.3 kB 93.5 kB N/A
Overall change 3.1 MB 3.11 MB ⚠️ +6.12 kB
Diff details
Diff for page.js

Diff too large to display

Diff for middleware.js

Diff too large to display

Diff for edge-ssr.js

Diff too large to display

Diff for _buildManifest.js
@@ -611,35 +611,35 @@ self.__BUILD_MANIFEST = (function (a, b, c) {
       numHashes: NaN,
       bitArray: [],
     },
-    "/": ["static\u002Fchunks\u002Fpages\u002Findex-8312816003c836ca.js"],
+    "/": ["static\u002Fchunks\u002Fpages\u002Findex-0eb0f30aae464b15.js"],
     "/_error": [
-      "static\u002Fchunks\u002Fpages\u002F_error-108d239ccbd01df3.js",
+      "static\u002Fchunks\u002Fpages\u002F_error-7503b65793aeda9f.js",
     ],
     "/css": [
       "static\u002Fcss\u002Fded6b86ab9cc0a1f.css",
-      "static\u002Fchunks\u002Fpages\u002Fcss-c7999ca7b397642c.js",
+      "static\u002Fchunks\u002Fpages\u002Fcss-14b4ec2febaa617d.js",
     ],
     "/dynamic": [
-      "static\u002Fchunks\u002Fpages\u002Fdynamic-1bf1b522b071e22a.js",
+      "static\u002Fchunks\u002Fpages\u002Fdynamic-24891a28ecfaf61d.js",
     ],
     "/edge-ssr": [
-      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-9f01876339e3437b.js",
+      "static\u002Fchunks\u002Fpages\u002Fedge-ssr-f68757662e8cc4b5.js",
     ],
-    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-edae0400cfdbe933.js"],
-    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-c11320a657ec666d.js"],
+    "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-25d6de8fe25c2526.js"],
+    "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-34de3af84d413de3.js"],
     "/image": [
-      "static\u002Fchunks\u002F8258-9768ab794e68b1dc.js",
-      "static\u002Fchunks\u002Fpages\u002Fimage-174112e04c93dfd7.js",
+      "static\u002Fchunks\u002F6316-07d5277e1ed2f1f9.js",
+      "static\u002Fchunks\u002Fpages\u002Fimage-7218f8bad067d350.js",
     ],
-    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-69a06d3260afde67.js"],
+    "/link": ["static\u002Fchunks\u002Fpages\u002Flink-fb9703d62b3bdf85.js"],
     "/routerDirect": [
-      "static\u002Fchunks\u002Fpages\u002FrouterDirect-eab8cdd319b4a9be.js",
+      "static\u002Fchunks\u002Fpages\u002FrouterDirect-7a0b11345ff468cf.js",
     ],
     "/script": [
-      "static\u002Fchunks\u002Fpages\u002Fscript-ae5bd9e9cf17793f.js",
+      "static\u002Fchunks\u002Fpages\u002Fscript-3fa0815377002305.js",
     ],
     "/withRouter": [
-      "static\u002Fchunks\u002Fpages\u002FwithRouter-b277df764694ea2e.js",
+      "static\u002Fchunks\u002Fpages\u002FwithRouter-608a306c0a09e667.js",
     ],
     sortedPages: [
       "\u002F",
Diff for css-HASH.js
@@ -1,31 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9813],
   {
-    /***/ 4131: /***/ (module) => {
-      // extracted by mini-css-extract-plugin
-      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
-      /***/
-    },
-
-    /***/ 6015: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/css",
-        function () {
-          return __webpack_require__(6854);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 6854: /***/ (
+    /***/ 1048: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -39,7 +15,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(4131);
+        __webpack_require__(9541);
       /* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           _css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -58,13 +34,37 @@
 
       /***/
     },
+
+    /***/ 4641: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/css",
+        function () {
+          return __webpack_require__(1048);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9541: /***/ (module) => {
+      // extracted by mini-css-extract-plugin
+      module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(6015)
+      __webpack_exec__(4641)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2291],
   {
-    /***/ 946: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5104);
-
-      /***/
-    },
-
-    /***/ 1036: /***/ (
+    /***/ 1266: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(946);
+        __webpack_require__(1776);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -35,12 +25,12 @@
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 4765)
-            .then(__webpack_require__.bind(__webpack_require__, 4765))
+            .e(/* import() */ 9715)
+            .then(__webpack_require__.bind(__webpack_require__, 9715))
             .then((mod) => mod.Hello),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 4765],
+            webpack: () => [/*require.resolve*/ 9715],
           },
         }
       );
@@ -67,7 +57,44 @@
       /***/
     },
 
-    /***/ 3399: /***/ (
+    /***/ 1776: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(7760);
+
+      /***/
+    },
+
+    /***/ 3749: /***/ (
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) => {
+      "use strict";
+      /* __next_internal_client_entry_do_not_use__  cjs */
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "LoadableContext", {
+        enumerable: true,
+        get: function () {
+          return LoadableContext;
+        },
+      });
+      const _interop_require_default = __webpack_require__(1532);
+      const _react = /*#__PURE__*/ _interop_require_default._(
+        __webpack_require__(7197)
+      );
+      const LoadableContext = _react.default.createContext(null);
+      if (false) {
+      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 6535: /***/ (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -109,7 +136,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(7197)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(9829);
+      const _loadablecontextsharedruntime = __webpack_require__(3749);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -342,7 +369,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 5104: /***/ (module, exports, __webpack_require__) => {
+    /***/ 7760: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -375,7 +402,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
         __webpack_require__(7197)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(3399)
+        __webpack_require__(6535)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -475,7 +502,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 8695: /***/ (
+    /***/ 9585: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -483,7 +510,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(1036);
+          return __webpack_require__(1266);
         },
       ]);
       if (false) {
@@ -491,40 +518,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 
       /***/
     },
-
-    /***/ 9829: /***/ (
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) => {
-      "use strict";
-      /* __next_internal_client_entry_do_not_use__  cjs */
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "LoadableContext", {
-        enumerable: true,
-        get: function () {
-          return LoadableContext;
-        },
-      });
-      const _interop_require_default = __webpack_require__(1532);
-      const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(7197)
-      );
-      const LoadableContext = _react.default.createContext(null);
-      if (false) {
-      } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8695)
+      __webpack_exec__(9585)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,24 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [5350],
   {
-    /***/ 361: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/head",
-        function () {
-          return __webpack_require__(721);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 721: /***/ (
+    /***/ 5163: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -33,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5051);
+        __webpack_require__(7269);
       /* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -67,12 +50,29 @@
       /***/
     },
 
-    /***/ 5051: /***/ (
+    /***/ 7269: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4981);
+      module.exports = __webpack_require__(2053);
+
+      /***/
+    },
+
+    /***/ 8563: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/head",
+        function () {
+          return __webpack_require__(5163);
+        },
+      ]);
+      if (false) {
+      }
 
       /***/
     },
@@ -82,7 +82,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(361)
+      __webpack_exec__(8563)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [9804],
   {
-    /***/ 1705: /***/ (
+    /***/ 1271: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/hooks",
+        function () {
+          return __webpack_require__(2631);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 2631: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -59,30 +76,13 @@
 
       /***/
     },
-
-    /***/ 8637: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/hooks",
-        function () {
-          return __webpack_require__(1705);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(8637)
+      __webpack_exec__(1271)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,24 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [2983],
   {
-    /***/ 798: /***/ (
+    /***/ 565: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/image",
+        function () {
+          return __webpack_require__(7813);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 7813: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -18,8 +35,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(1329);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
-      var next_image = __webpack_require__(8258);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
+      var next_image = __webpack_require__(6316);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
       /* harmony default export */ const nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -48,30 +65,13 @@
 
       /***/
     },
-
-    /***/ 7643: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/image",
-        function () {
-          return __webpack_require__(798);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
-    /******/ __webpack_require__.O(0, [8258, 636, 6593, 8792], () =>
-      __webpack_exec__(7643)
+    /******/ __webpack_require__.O(0, [6316, 636, 6593, 8792], () =>
+      __webpack_exec__(565)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,43 +1,36 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4672],
   {
-    /***/ 4183: /***/ (module, exports, __webpack_require__) => {
+    /***/ 443: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(2457);
+
+      /***/
+    },
+
+    /***/ 2185: /***/ (__unused_webpack_module, exports) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
         value: true,
       });
-      Object.defineProperty(exports, "getDomainLocale", {
+      Object.defineProperty(exports, "errorOnce", {
         enumerable: true,
         get: function () {
-          return getDomainLocale;
+          return errorOnce;
         },
       });
-      const _normalizetrailingslash = __webpack_require__(8887);
-      const basePath =
-        /* unused pure expression or super */ null && (false || "");
-      function getDomainLocale(path, locale, locales, domainLocales) {
-        if (false) {
-        } else {
-          return false;
-        }
-      }
-      if (
-        (typeof exports.default === "function" ||
-          (typeof exports.default === "object" && exports.default !== null)) &&
-        typeof exports.default.__esModule === "undefined"
-      ) {
-        Object.defineProperty(exports.default, "__esModule", {
-          value: true,
-        });
-        Object.assign(exports.default, exports);
-        module.exports = exports.default;
-      } //# sourceMappingURL=get-domain-locale.js.map
+      let errorOnce = (_) => {};
+      if (false) {
+      } //# sourceMappingURL=error-once.js.map
 
       /***/
     },
 
-    /***/ 5049: /***/ (module, exports, __webpack_require__) => {
+    /***/ 2457: /***/ (module, exports, __webpack_require__) => {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -64,17 +57,17 @@
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(7197)
       );
-      const _resolvehref = __webpack_require__(3575);
-      const _islocalurl = __webpack_require__(4135);
-      const _formaturl = __webpack_require__(3050);
-      const _utils = __webpack_require__(6864);
-      const _addlocale = __webpack_require__(1789);
-      const _routercontextsharedruntime = __webpack_require__(1778);
-      const _useintersection = __webpack_require__(7210);
-      const _getdomainlocale = __webpack_require__(4183);
-      const _addbasepath = __webpack_require__(6518);
-      const _usemergedref = __webpack_require__(9011);
-      const _erroronce = __webpack_require__(5193);
+      const _resolvehref = __webpack_require__(5687);
+      const _islocalurl = __webpack_require__(7127);
+      const _formaturl = __webpack_require__(58);
+      const _utils = __webpack_require__(2080);
+      const _addlocale = __webpack_require__(5709);
+      const _routercontextsharedruntime = __webpack_require__(4770);
+      const _useintersection = __webpack_require__(3290);
+      const _getdomainlocale = __webpack_require__(4615);
+      const _addbasepath = __webpack_require__(8422);
+      const _usemergedref = __webpack_require__(9667);
+      const _erroronce = __webpack_require__(2185);
       const prefetched = new Set();
       function prefetch(router, href, as, options) {
         if (false) {
@@ -453,82 +446,7 @@
       /***/
     },
 
-    /***/ 5193: /***/ (__unused_webpack_module, exports) => {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true,
-      });
-      Object.defineProperty(exports, "errorOnce", {
-        enumerable: true,
-        get: function () {
-          return errorOnce;
-        },
-      });
-      let errorOnce = (_) => {};
-      if (false) {
-      } //# sourceMappingURL=error-once.js.map
-
-      /***/
-    },
-
-    /***/ 5529: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5049);
-
-      /***/
-    },
-
-    /***/ 6887: /***/ (
-      __unused_webpack_module,
-      __webpack_exports__,
-      __webpack_require__
-    ) => {
-      "use strict";
-      __webpack_require__.r(__webpack_exports__);
-      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
-        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
-        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
-        /* harmony export */
-      });
-      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
-        __webpack_require__(1329);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5529);
-      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
-        /*#__PURE__*/ __webpack_require__.n(
-          next_link__WEBPACK_IMPORTED_MODULE_1__
-        );
-
-      function aLink(props) {
-        return /*#__PURE__*/ (0,
-        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
-          children: [
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
-              children: "A Link page!",
-            }),
-            /*#__PURE__*/ (0,
-            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
-              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
-              {
-                href: "/",
-                children: "Go to /",
-              }
-            ),
-          ],
-        });
-      }
-      var __N_SSP = true;
-      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
-
-      /***/
-    },
-
-    /***/ 7210: /***/ (module, exports, __webpack_require__) => {
+    /***/ 3290: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -541,7 +459,7 @@
         },
       });
       const _react = __webpack_require__(7197);
-      const _requestidlecallback = __webpack_require__(1785);
+      const _requestidlecallback = __webpack_require__(6809);
       const hasIntersectionObserver =
         typeof IntersectionObserver === "function";
       const observers = new Map();
@@ -653,7 +571,106 @@
       /***/
     },
 
-    /***/ 9011: /***/ (module, exports, __webpack_require__) => {
+    /***/ 4615: /***/ (module, exports, __webpack_require__) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", {
+        value: true,
+      });
+      Object.defineProperty(exports, "getDomainLocale", {
+        enumerable: true,
+        get: function () {
+          return getDomainLocale;
+        },
+      });
+      const _normalizetrailingslash = __webpack_require__(903);
+      const basePath =
+        /* unused pure expression or super */ null && (false || "");
+      function getDomainLocale(path, locale, locales, domainLocales) {
+        if (false) {
+        } else {
+          return false;
+        }
+      }
+      if (
+        (typeof exports.default === "function" ||
+          (typeof exports.default === "object" && exports.default !== null)) &&
+        typeof exports.default.__esModule === "undefined"
+      ) {
+        Object.defineProperty(exports.default, "__esModule", {
+          value: true,
+        });
+        Object.assign(exports.default, exports);
+        module.exports = exports.default;
+      } //# sourceMappingURL=get-domain-locale.js.map
+
+      /***/
+    },
+
+    /***/ 6745: /***/ (
+      __unused_webpack_module,
+      __webpack_exports__,
+      __webpack_require__
+    ) => {
+      "use strict";
+      __webpack_require__.r(__webpack_exports__);
+      /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+        /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+        /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+        /* harmony export */
+      });
+      /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+        __webpack_require__(1329);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+        __webpack_require__(443);
+      /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+        /*#__PURE__*/ __webpack_require__.n(
+          next_link__WEBPACK_IMPORTED_MODULE_1__
+        );
+
+      function aLink(props) {
+        return /*#__PURE__*/ (0,
+        react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+          children: [
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+              children: "A Link page!",
+            }),
+            /*#__PURE__*/ (0,
+            react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+              next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+              {
+                href: "/",
+                children: "Go to /",
+              }
+            ),
+          ],
+        });
+      }
+      var __N_SSP = true;
+      /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+      /***/
+    },
+
+    /***/ 7595: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/link",
+        function () {
+          return __webpack_require__(6745);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 9667: /***/ (module, exports, __webpack_require__) => {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -730,30 +747,13 @@
 
       /***/
     },
-
-    /***/ 9297: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/link",
-        function () {
-          return __webpack_require__(6887);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9297)
+      __webpack_exec__(7595)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,34 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [188],
   {
-    /***/ 1576: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5704);
-
-      /***/
-    },
-
-    /***/ 7881: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/routerDirect",
-        function () {
-          return __webpack_require__(9851);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 9851: /***/ (
+    /***/ 3401: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1576);
+        __webpack_require__(6702);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -62,13 +35,40 @@
 
       /***/
     },
+
+    /***/ 4787: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/routerDirect",
+        function () {
+          return __webpack_require__(3401);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
+
+    /***/ 6702: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(728);
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(7881)
+      __webpack_exec__(4787)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,34 +1,17 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [1209],
   {
-    /***/ 2777: /***/ (
-      __unused_webpack_module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      (window.__NEXT_P = window.__NEXT_P || []).push([
-        "/script",
-        function () {
-          return __webpack_require__(9272);
-        },
-      ]);
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 8662: /***/ (
+    /***/ 6868: /***/ (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
-      module.exports = __webpack_require__(4550);
+      module.exports = __webpack_require__(1190);
 
       /***/
     },
 
-    /***/ 9272: /***/ (
+    /***/ 7478: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -43,7 +26,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(8662);
+        __webpack_require__(6868);
       /* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -75,13 +58,30 @@
 
       /***/
     },
+
+    /***/ 7659: /***/ (
+      __unused_webpack_module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      (window.__NEXT_P = window.__NEXT_P || []).push([
+        "/script",
+        function () {
+          return __webpack_require__(7478);
+        },
+      ]);
+      if (false) {
+      }
+
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(2777)
+      __webpack_exec__(7659)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,17 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [3263],
   {
-    /***/ 1576: /***/ (
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) => {
-      module.exports = __webpack_require__(5704);
-
-      /***/
-    },
-
-    /***/ 8478: /***/ (
+    /***/ 2528: /***/ (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -26,7 +16,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1329);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(1576);
+        __webpack_require__(6702);
       /* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -45,7 +35,17 @@
       /***/
     },
 
-    /***/ 9505: /***/ (
+    /***/ 6702: /***/ (
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) => {
+      module.exports = __webpack_require__(728);
+
+      /***/
+    },
+
+    /***/ 9763: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -53,7 +53,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/withRouter",
         function () {
-          return __webpack_require__(8478);
+          return __webpack_require__(2528);
         },
       ]);
       if (false) {
@@ -67,7 +67,7 @@
     /******/ var __webpack_exec__ = (moduleId) =>
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
-      __webpack_exec__(9505)
+      __webpack_exec__(9763)
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 6566-HASH.js

Diff too large to display

Diff for 7740-HASH.js
failed to diff
Diff for 8258-HASH.js

Diff too large to display

Diff for main-HASH.js

Diff too large to display

Diff for main-app-HASH.js
@@ -1,64 +1,64 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [4977],
   {
-    /***/ 2584: /***/ () => {
-      /* (ignored) */
-      /***/
-    },
-
-    /***/ 6407: /***/ (
+    /***/ 4691: /***/ (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
     ) => {
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6596, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8958, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6101, 23)
+        __webpack_require__.t.bind(__webpack_require__, 711, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7719, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7045, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 3524, 23)
+        __webpack_require__.t.bind(__webpack_require__, 266, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6044, 23)
+        __webpack_require__.t.bind(__webpack_require__, 3438, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 344, 23)
+        __webpack_require__.t.bind(__webpack_require__, 7494, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 6577, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4627, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 7518, 23)
+        __webpack_require__.t.bind(__webpack_require__, 924, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 215, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4766, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 8782, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5564, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 3205, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8095, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.bind(__webpack_require__, 576)
+        __webpack_require__.bind(__webpack_require__, 8350)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 766, 23)
+        __webpack_require__.t.bind(__webpack_require__, 8128, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 2283, 23)
+        __webpack_require__.t.bind(__webpack_require__, 5865, 23)
       );
       Promise.resolve(/* import() eager */).then(
-        __webpack_require__.t.bind(__webpack_require__, 1257, 23)
+        __webpack_require__.t.bind(__webpack_require__, 4103, 23)
       );
 
       /***/
     },
+
+    /***/ 6170: /***/ () => {
+      /* (ignored) */
+      /***/
+    },
   },
   /******/ (__webpack_require__) => {
     // webpackRuntimeModules
@@ -66,8 +66,8 @@
       __webpack_require__((__webpack_require__.s = moduleId));
     /******/ __webpack_require__.O(
       0,
-      [9962, 7740],
-      () => (__webpack_exec__(7620), __webpack_exec__(6407))
+      [4627, 8196],
+      () => (__webpack_exec__(1314), __webpack_exec__(4691))
     );
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Commit: c879985

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 12, 2025

CodSpeed Performance Report

Merging #87102 will not alter performance

Comparing refactor_side_effects_api (c879985) with canary (c54eda4)

Summary

✅ 17 untouched
⏩ 3 skipped1

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@lukesandberg lukesandberg marked this pull request as ready for review December 12, 2025 07:32
@lukesandberg lukesandberg requested a review from a team December 12, 2025 07:33
@lukesandberg lukesandberg changed the title Refactor: Rename is_marked_as_side_effect_free to side_effects and return ModuleSideEffects enum [turbopack] Rename is_marked_as_side_effect_free to side_effects and return ModuleSideEffects enum Dec 12, 2025

let mut globs = String::new();
globs.push_str("**/node_modules/{");
globs.push_str(&side_effect_free_packages.join(","));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lukesandberg lukesandberg merged commit 5437319 into canary Dec 12, 2025
428 of 432 checks passed
Copy link
Contributor Author

Merge activity

@lukesandberg lukesandberg deleted the refactor_side_effects_api branch December 12, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by: Turbopack team PRs by the Turbopack team. Turbopack Related to Turbopack with Next.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants