next.js icon indicating copy to clipboard operation
next.js copied to clipboard

Allow shallow routing for history back/forward

Open okmttdhr opened this issue 4 years ago • 5 comments

  • Added experimental.popStateShallowRoute option which allows you to always shallow route when history back/forward

Closes https://github.com/vercel/next.js/issues/7814

okmttdhr avatar Feb 14 '21 12:02 okmttdhr

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 11.1s 11.2s ⚠️ +179ms
nodeModulesSize 69.8 MB 69.8 MB ⚠️ +715 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.213 2.291 ⚠️ +0.08
/ avg req/sec 1129.75 1091.15 ⚠️ -38.6
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.444 1.543 ⚠️ +0.1
/error-in-render avg req/sec 1730.92 1619.84 ⚠️ -111.08
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..5cb0.js gzip 13.1 kB 13.2 kB ⚠️ +29 B
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.63 kB 6.63 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.5 kB 59.5 kB ⚠️ +29 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 614 B 615 B ⚠️ +1 B
link.html gzip 621 B 622 B ⚠️ +1 B
withRouter.html gzip 608 B 609 B ⚠️ +1 B
Overall change 1.84 kB 1.85 kB ⚠️ +3 B

Diffs

Diff for 677f882d2ed8..fb73c6f26.js
@@ -1666,7 +1666,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 shallow: options.shallow && _this._shallow,
                 locale: options.locale || _this.defaultLocale
               }),
-              forcedScroll
+              forcedScroll,
+              true
             );
           }; // represents the current component key
 
@@ -1822,7 +1823,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   url,
                   as,
                   options,
-                  forcedScroll
+                  forcedScroll,
+                  isPopState
                 ) {
                   var _this2 = this;
 
@@ -1855,6 +1857,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     shouldInterpolate,
                     interpolatedAs,
                     missingParams,
+                    POP_STATE_SHALLOW_ROUTE_OPTION,
+                    isSamePageURLChange,
+                    isPopStateShallowRoute,
+                    isValidShallowRoute,
                     routeInfo,
                     _routeInfo,
                     error,
@@ -1867,8 +1873,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     newUrl,
                     newAs,
                     notFoundRoute,
-                    appComp,
-                    isValidShallowRoute;
+                    appComp;
 
                   return _regeneratorRuntime.wrap(
                     function _callee$(_context) {
@@ -2219,17 +2224,25 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               routeProps
                             );
                             _context.prev = 79;
-                            _context.next = 82;
+                            POP_STATE_SHALLOW_ROUTE_OPTION = false;
+                            isSamePageURLChange = this.route === route;
+                            isPopStateShallowRoute =
+                              isPopState && POP_STATE_SHALLOW_ROUTE_OPTION;
+                            isValidShallowRoute =
+                              (options.shallow && isSamePageURLChange) ||
+                              isPopStateShallowRoute;
+                            _context.next = 86;
                             return this.getRouteInfo(
                               route,
                               pathname,
                               query,
                               as,
                               resolvedAs,
-                              routeProps
+                              routeProps,
+                              isValidShallowRoute
                             );
 
-                          case 82:
+                          case 86:
                             routeInfo = _context.sent;
                             (_routeInfo = routeInfo),
                               (error = _routeInfo.error),
@@ -2238,14 +2251,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               (__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
 
                             if (!((__N_SSG || __N_SSP) && props)) {
-                              _context.next = 108;
+                              _context.next = 112;
                               break;
                             }
 
                             if (
                               !(props.pageProps && props.pageProps.__N_REDIRECT)
                             ) {
-                              _context.next = 95;
+                              _context.next = 99;
                               break;
                             }
 
@@ -2254,7 +2267,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             // it's not
 
                             if (!destination.startsWith("/")) {
-                              _context.next = 93;
+                              _context.next = 97;
                               break;
                             }
 
@@ -2264,7 +2277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this._resolveHref(parsedHref, pages, false);
 
                             if (!pages.includes(parsedHref.pathname)) {
-                              _context.next = 93;
+                              _context.next = 97;
                               break;
                             }
 
@@ -2280,35 +2293,35 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               this.change(method, newUrl, newAs, options)
                             );
 
-                          case 93:
+                          case 97:
                             window.location.href = destination;
                             return _context.abrupt(
                               "return",
                               new Promise(function() {})
                             );
 
-                          case 95:
+                          case 99:
                             if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
-                              _context.next = 108;
+                              _context.next = 112;
                               break;
                             }
 
-                            _context.prev = 96;
-                            _context.next = 99;
+                            _context.prev = 100;
+                            _context.next = 103;
                             return this.fetchComponent("/404");
 
-                          case 99:
+                          case 103:
                             notFoundRoute = "/404";
-                            _context.next = 105;
+                            _context.next = 109;
                             break;
 
-                          case 102:
-                            _context.prev = 102;
-                            _context.t1 = _context["catch"](96);
+                          case 106:
+                            _context.prev = 106;
+                            _context.t1 = _context["catch"](100);
                             notFoundRoute = "/_error";
 
-                          case 105:
-                            _context.next = 107;
+                          case 109:
+                            _context.next = 111;
                             return this.getRouteInfo(
                               notFoundRoute,
                               notFoundRoute,
@@ -2317,13 +2330,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               resolvedAs,
                               {
                                 shallow: false
-                              }
+                              },
+                              false
                             );
 
-                          case 107:
+                          case 111:
                             routeInfo = _context.sent;
 
-                          case 108:
+                          case 112:
                             Router.events.emit(
                               "beforeHistoryChange",
                               as,
@@ -2332,11 +2346,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this.changeState(method, url, as, options);
 
                             if (false) {
-                            } // shallow routing is only allowed for same page URL changes.
+                            }
 
-                            isValidShallowRoute =
-                              options.shallow && this.route === route;
-                            _context.next = 114;
+                            _context.next = 117;
                             return this.set(
                               route,
                               pathname,
@@ -2355,9 +2367,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               else throw e;
                             });
 
-                          case 114:
+                          case 117:
                             if (!error) {
-                              _context.next = 117;
+                              _context.next = 120;
                               break;
                             }
 
@@ -2369,7 +2381,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             throw error;
 
-                          case 117:
+                          case 120:
                             if (false) {
                             }
 
@@ -2380,21 +2392,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             return _context.abrupt("return", true);
 
-                          case 122:
-                            _context.prev = 122;
+                          case 125:
+                            _context.prev = 125;
                             _context.t2 = _context["catch"](79);
 
                             if (!_context.t2.cancelled) {
-                              _context.next = 126;
+                              _context.next = 129;
                               break;
                             }
 
                             return _context.abrupt("return", false);
 
-                          case 126:
+                          case 129:
                             throw _context.t2;
 
-                          case 127:
+                          case 130:
                           case "end":
                             return _context.stop();
                         }
@@ -2404,14 +2416,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     this,
                     [
                       [36, 46],
-                      [79, 122],
-                      [96, 102]
+                      [79, 125],
+                      [100, 106]
                     ]
                   );
                 })
               );
 
-              function change(_x, _x2, _x3, _x4, _x5) {
+              function change(_x, _x2, _x3, _x4, _x5, _x6) {
                 return _change.apply(this, arguments);
               }
 
@@ -2596,7 +2608,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+              function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
                 return _handleRouteInfoError.apply(this, arguments);
               }
 
@@ -2613,7 +2625,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   query,
                   as,
                   resolvedAs,
-                  routeProps
+                  routeProps,
+                  isValidShallowRoute
                 ) {
                   var _this3 = this;
 
@@ -2636,13 +2649,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             _context3.prev = 0;
                             existingRouteInfo = this.components[route];
 
-                            if (
-                              !(
-                                routeProps.shallow &&
-                                existingRouteInfo &&
-                                this.route === route
-                              )
-                            ) {
+                            if (!(isValidShallowRoute && existingRouteInfo)) {
                               _context3.next = 4;
                               break;
                             }
@@ -2781,7 +2788,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+              function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
                 return _getRouteInfo.apply(this, arguments);
               }
 
@@ -3019,7 +3026,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function prefetch(_x18) {
+              function prefetch(_x20) {
                 return _prefetch.apply(this, arguments);
               }
 
@@ -3084,7 +3091,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function fetchComponent(_x19) {
+              function fetchComponent(_x21) {
                 return _fetchComponent.apply(this, arguments);
               }
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       async=""
     ></script>
     <script
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       as="script"
     />
     <link
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       async=""
     ></script>
     <script
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7cb49231e31fb73c6f26.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.64024eb38acf8c1db474.js"
       async=""
     ></script>
     <script

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 13.4s 13.9s ⚠️ +529ms
nodeModulesSize 69.8 MB 69.8 MB ⚠️ +715 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..5cb0.js gzip 13.1 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.63 kB 6.63 kB
webpack-HASH.js gzip 751 B 751 B
677f882d2ed8..5080.js gzip N/A 13.2 kB N/A
Overall change 59.5 kB 59.5 kB ⚠️ +29 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB ⚠️ +197 B
routerDirect.js 1.06 MB 1.06 MB ⚠️ +197 B
withRouter.js 1.06 MB 1.06 MB ⚠️ +197 B
Overall change 5.2 MB 5.2 MB ⚠️ +591 B

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 13.2s 13.4s ⚠️ +180ms
nodeModulesSize 69.8 MB 69.8 MB ⚠️ +715 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.187 2.191 0
/ avg req/sec 1143.17 1140.8 ⚠️ -2.37
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.495 1.531 ⚠️ +0.04
/error-in-render avg req/sec 1672.54 1633.03 ⚠️ -39.51
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
597-d08f5fe5..d690.js gzip 13.1 kB 13.1 kB ⚠️ +21 B
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.58 kB 6.58 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 59.9 kB 59.9 kB ⚠️ +21 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-6e0a903..b885.js gzip 1.26 kB 1.26 kB
_error-9e190..f9d6.js gzip 3.38 kB 3.38 kB
amp-7fd79cc4..99ee.js gzip 538 B 538 B
hooks-f7e199..11b9.js gzip 904 B 904 B
index-3dc22c..ffbb.js gzip 232 B 232 B
link-7cc9e62..ef27.js gzip 1.66 kB 1.66 kB
routerDirect..323a.js gzip 308 B 308 B
withRouter-a..2ef8.js gzip 304 B 304 B
Overall change 8.59 kB 8.59 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 322 B 322 B
Overall change 322 B 322 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 586 B 585 B -1 B
link.html gzip 593 B 591 B -2 B
withRouter.html gzip 580 B 578 B -2 B
Overall change 1.76 kB 1.75 kB -5 B

Diffs

Diff for 677f882d2ed8..7293b5cb0.js
@@ -424,7 +424,7 @@
               l,
               a(
                 n.mark(function a() {
-                  var u, c, s, l, y, m, g, w;
+                  var u, c, s, l, y, m, g, b;
                   return n.wrap(
                     function(n) {
                       for (;;)
@@ -465,8 +465,8 @@
                           case 13:
                             return (
                               (g = n.sent),
-                              (w = Object.assign({ styles: m }, g)),
-                              n.abrupt("return", "error" in g ? g : w)
+                              (b = Object.assign({ styles: m }, g)),
+                              n.abrupt("return", "error" in g ? g : b)
                             );
                           case 18:
                             return (
@@ -719,7 +719,7 @@
           0;
           return !1;
         }),
-        (e.addLocale = b),
+        (e.addLocale = w),
         (e.delLocale = _),
         (e.hasBasePath = k),
         (e.addBasePath = P),
@@ -741,10 +741,10 @@
       function g(t) {
         return t && t.__esModule ? t : { default: t };
       }
-      function w() {
+      function b() {
         return Object.assign(new Error("Route Cancelled"), { cancelled: !0 });
       }
-      function b(t, e, r) {
+      function w(t, e, r) {
         return t;
       }
       function _(t, e) {
@@ -900,7 +900,7 @@
             y = o.err,
             m = o.subscription,
             g = o.isFallback,
-            w = o.locale;
+            b = o.locale;
           o.locales, o.defaultLocale, o.domainLocales;
           a(this, t),
             (this.route = void 0),
@@ -947,7 +947,8 @@
                         shallow: o.shallow && i._shallow,
                         locale: o.locale || i.defaultLocale
                       }),
-                      undefined
+                      undefined,
+                      !0
                     );
                 }
               } else {
@@ -976,8 +977,8 @@
             (this.pageLoader = s),
             (this.pathname = e),
             (this.query = r);
-          var b = (0, p.isDynamicRoute)(e) && self.__NEXT_DATA__.autoExport;
-          (this.asPath = b ? e : n),
+          var w = (0, p.isDynamicRoute)(e) && self.__NEXT_DATA__.autoExport;
+          (this.asPath = w ? e : n),
             (this.basePath = ""),
             (this.sub = m),
             (this.clc = null),
@@ -987,7 +988,7 @@
             (this.isReady = !(
               !self.__NEXT_DATA__.gssp &&
               !self.__NEXT_DATA__.gip &&
-              (b || self.location.search)
+              (w || self.location.search)
             )),
             (this.isLocaleDomain = !1),
             "//" !== n.substr(0, 2) &&
@@ -995,7 +996,7 @@
                 "replaceState",
                 (0, h.formatWithValidation)({ pathname: P(e), query: r }),
                 (0, h.getURL)(),
-                { locale: w }
+                { locale: b }
               ),
             window.addEventListener("popstate", this.onPopState);
         }
@@ -1043,12 +1044,11 @@
               key: "change",
               value: (function() {
                 var e = o(
-                  n.mark(function e(r, o, a, i, u) {
-                    var l,
-                      f,
+                  n.mark(function e(r, o, a, i, u, l) {
+                    var f,
                       v,
                       g,
-                      w,
+                      b,
                       x,
                       O,
                       C,
@@ -1076,7 +1076,10 @@
                       tt,
                       et,
                       rt,
-                      nt;
+                      nt,
+                      ot,
+                      at,
+                      it;
                     return n.wrap(
                       function(e) {
                         for (;;)
@@ -1092,61 +1095,61 @@
                               );
                             case 3:
                               i._h && (this.isReady = !0),
-                                (i.scroll = !(null != (l = i.scroll) && !l)),
-                                (f = i.locale !== this.locale),
+                                (i.scroll = !(null != (f = i.scroll) && !f)),
+                                (v = i.locale !== this.locale),
                                 (e.next = 18);
                               break;
                             case 18:
                               if (
                                 (i._h || (this.isSsr = !1),
                                 h.ST && performance.mark("routeChange"),
-                                (v = i.shallow),
-                                (g = { shallow: void 0 !== v && v }),
+                                (g = i.shallow),
+                                (b = { shallow: void 0 !== g && g }),
                                 this._inFlightRoute &&
                                   this.abortComponentLoad(
                                     this._inFlightRoute,
-                                    g
+                                    b
                                   ),
                                 (a = P(
-                                  b(
+                                  w(
                                     k(a) ? S(a) : a,
                                     i.locale,
                                     this.defaultLocale
                                   )
                                 )),
-                                (w = _(k(a) ? S(a) : a, this.locale)),
+                                (x = _(k(a) ? S(a) : a, this.locale)),
                                 (this._inFlightRoute = a),
-                                i._h || !this.onlyAHashChange(w))
+                                i._h || !this.onlyAHashChange(x))
                               ) {
                                 e.next = 34;
                                 break;
                               }
                               return (
-                                (this.asPath = w),
-                                t.events.emit("hashChangeStart", a, g),
+                                (this.asPath = x),
+                                t.events.emit("hashChangeStart", a, b),
                                 this.changeState(r, o, a, i),
-                                this.scrollToHash(w),
+                                this.scrollToHash(x),
                                 this.notify(this.components[this.route], null),
-                                t.events.emit("hashChangeComplete", a, g),
+                                t.events.emit("hashChangeComplete", a, b),
                                 e.abrupt("return", !0)
                               );
                             case 34:
                               return (
-                                (x = (0, d.parseRelativeUrl)(o)),
-                                (C = (O = x).pathname),
-                                (T = O.query),
+                                (O = (0, d.parseRelativeUrl)(o)),
+                                (T = (C = O).pathname),
+                                (A = C.query),
                                 (e.prev = 36),
                                 (e.next = 39),
                                 this.pageLoader.getPageList()
                               );
                             case 39:
                               return (
-                                (A = e.sent),
+                                (D = e.sent),
                                 (e.next = 42),
                                 (0, s.getClientBuildManifest)()
                               );
                             case 42:
-                              (D = e.sent), D.__rewrites, (e.next = 50);
+                              (M = e.sent), M.__rewrites, (e.next = 50);
                               break;
                             case 46:
                               return (
@@ -1157,15 +1160,15 @@
                               );
                             case 50:
                               if (
-                                ((x = this._resolveHref(x, A)).pathname !== C &&
-                                  ((C = x.pathname),
-                                  (o = (0, h.formatWithValidation)(x))),
-                                (C = C
-                                  ? (0, c.removePathTrailingSlash)(S(C))
-                                  : C),
-                                this.urlIsNew(w) || f || (r = "replaceState"),
-                                (M = (0, c.removePathTrailingSlash)(C)),
-                                (N = a),
+                                ((O = this._resolveHref(O, D)).pathname !== T &&
+                                  ((T = O.pathname),
+                                  (o = (0, h.formatWithValidation)(O))),
+                                (T = T
+                                  ? (0, c.removePathTrailingSlash)(S(T))
+                                  : T),
+                                this.urlIsNew(x) || v || (r = "replaceState"),
+                                (N = (0, c.removePathTrailingSlash)(T)),
+                                (U = a),
                                 E(a))
                               ) {
                                 e.next = 62;
@@ -1180,29 +1183,29 @@
                               );
                             case 62:
                               if (
-                                ((N = _(S(N), this.locale)),
-                                !(0, p.isDynamicRoute)(M))
+                                ((U = _(S(U), this.locale)),
+                                !(0, p.isDynamicRoute)(N))
                               ) {
                                 e.next = 78;
                                 break;
                               }
                               if (
-                                ((U = (0, d.parseRelativeUrl)(N)),
-                                (W = U.pathname),
-                                (q = (0, m.getRouteRegex)(M)),
-                                (F = (0, y.getRouteMatcher)(q)(W)),
-                                (B = (G = M === W) ? R(M, W, T) : {}),
-                                F && (!G || B.result))
+                                ((W = (0, d.parseRelativeUrl)(U)),
+                                (q = W.pathname),
+                                (F = (0, m.getRouteRegex)(N)),
+                                (G = (0, y.getRouteMatcher)(F)(q)),
+                                (H = (B = N === q) ? R(N, q, A) : {}),
+                                G && (!B || H.result))
                               ) {
                                 e.next = 77;
                                 break;
                               }
                               if (
                                 !(
-                                  (H = Object.keys(q.groups).filter(function(
+                                  (V = Object.keys(F.groups).filter(function(
                                     t
                                   ) {
-                                    return !T[t];
+                                    return !A[t];
                                   })).length > 0
                                 )
                               ) {
@@ -1210,24 +1213,24 @@
                                 break;
                               }
                               throw new Error(
-                                (G
+                                (B
                                   ? "The provided `href` ("
                                       .concat(
                                         o,
                                         ") value is missing query values ("
                                       )
                                       .concat(
-                                        H.join(", "),
+                                        V.join(", "),
                                         ") to be interpolated properly. "
                                       )
                                   : "The provided `as` value ("
                                       .concat(
-                                        W,
+                                        q,
                                         ") is incompatible with the `href` value ("
                                       )
-                                      .concat(M, "). ")) +
+                                      .concat(N, "). ")) +
                                   "Read more: https://err.sh/vercel/next.js/".concat(
-                                    G
+                                    B
                                       ? "href-interpolation-failed"
                                       : "incompatible-href-as"
                                   )
@@ -1236,131 +1239,140 @@
                               e.next = 78;
                               break;
                             case 77:
-                              G
+                              B
                                 ? (a = (0, h.formatWithValidation)(
-                                    Object.assign({}, U, {
-                                      pathname: B.result,
-                                      query: L(T, B.params)
+                                    Object.assign({}, W, {
+                                      pathname: H.result,
+                                      query: L(A, H.params)
                                     })
                                   ))
-                                : Object.assign(T, F);
+                                : Object.assign(A, G);
                             case 78:
                               return (
-                                t.events.emit("routeChangeStart", a, g),
+                                t.events.emit("routeChangeStart", a, b),
                                 (e.prev = 79),
-                                (e.next = 82),
-                                this.getRouteInfo(M, C, T, a, N, g)
+                                !1,
+                                (X = this.route === N),
+                                (z = l && false),
+                                (J = (i.shallow && X) || z),
+                                (e.next = 86),
+                                this.getRouteInfo(N, T, A, a, U, b, J)
                               );
-                            case 82:
+                            case 86:
                               if (
-                                ((V = e.sent),
-                                (z = (X = V).error),
-                                (J = X.props),
-                                ($ = X.__N_SSG),
-                                (Y = X.__N_SSP),
-                                (!$ && !Y) || !J)
+                                (($ = e.sent),
+                                (Q = (Y = $).error),
+                                (Z = Y.props),
+                                (K = Y.__N_SSG),
+                                (tt = Y.__N_SSP),
+                                (!K && !tt) || !Z)
                               ) {
-                                e.next = 108;
+                                e.next = 112;
                                 break;
                               }
-                              if (!J.pageProps || !J.pageProps.__N_REDIRECT) {
-                                e.next = 95;
+                              if (!Z.pageProps || !Z.pageProps.__N_REDIRECT) {
+                                e.next = 99;
                                 break;
                               }
                               if (
-                                !(Q = J.pageProps.__N_REDIRECT).startsWith("/")
+                                !(et = Z.pageProps.__N_REDIRECT).startsWith("/")
                               ) {
-                                e.next = 93;
+                                e.next = 97;
                                 break;
                               }
                               if (
-                                ((Z = (0, d.parseRelativeUrl)(Q)),
-                                this._resolveHref(Z, A, !1),
-                                !A.includes(Z.pathname))
+                                ((rt = (0, d.parseRelativeUrl)(et)),
+                                this._resolveHref(rt, D, !1),
+                                !D.includes(rt.pathname))
                               ) {
-                                e.next = 93;
+                                e.next = 97;
                                 break;
                               }
                               return (
-                                (K = I(this, Q, Q)),
-                                (tt = K.url),
-                                (et = K.as),
-                                e.abrupt("return", this.change(r, tt, et, i))
+                                (nt = I(this, et, et)),
+                                (ot = nt.url),
+                                (at = nt.as),
+                                e.abrupt("return", this.change(r, ot, at, i))
                               );
-                            case 93:
+                            case 97:
                               return (
-                                (window.location.href = Q),
+                                (window.location.href = et),
                                 e.abrupt("return", new Promise(function() {}))
                               );
-                            case 95:
-                              if (J.notFound !== j) {
-                                e.next = 108;
+                            case 99:
+                              if (Z.notFound !== j) {
+                                e.next = 112;
                                 break;
                               }
                               return (
-                                (e.prev = 96),
-                                (e.next = 99),
+                                (e.prev = 100),
+                                (e.next = 103),
                                 this.fetchComponent("/404")
                               );
-                            case 99:
-                              (rt = "/404"), (e.next = 105);
+                            case 103:
+                              (it = "/404"), (e.next = 109);
                               break;
-                            case 102:
-                              (e.prev = 102),
-                                (e.t1 = e.catch(96)),
-                                (rt = "/_error");
-                            case 105:
+                            case 106:
+                              (e.prev = 106),
+                                (e.t1 = e.catch(100)),
+                                (it = "/_error");
+                            case 109:
                               return (
-                                (e.next = 107),
-                                this.getRouteInfo(rt, rt, T, a, N, {
-                                  shallow: !1
-                                })
+                                (e.next = 111),
+                                this.getRouteInfo(
+                                  it,
+                                  it,
+                                  A,
+                                  a,
+                                  U,
+                                  { shallow: !1 },
+                                  !1
+                                )
                               );
-                            case 107:
-                              V = e.sent;
-                            case 108:
+                            case 111:
+                              $ = e.sent;
+                            case 112:
                               return (
-                                t.events.emit("beforeHistoryChange", a, g),
+                                t.events.emit("beforeHistoryChange", a, b),
                                 this.changeState(r, o, a, i),
-                                (nt = i.shallow && this.route === M),
-                                (e.next = 114),
+                                (e.next = 117),
                                 this.set(
-                                  M,
-                                  C,
+                                  N,
                                   T,
-                                  w,
-                                  V,
-                                  u || (nt || !i.scroll ? null : { x: 0, y: 0 })
+                                  A,
+                                  x,
+                                  $,
+                                  u || (J || !i.scroll ? null : { x: 0, y: 0 })
                                 ).catch(function(t) {
                                   if (!t.cancelled) throw t;
-                                  z = z || t;
+                                  Q = Q || t;
                                 })
                               );
-                            case 114:
-                              if (!z) {
-                                e.next = 117;
+                            case 117:
+                              if (!Q) {
+                                e.next = 120;
                                 break;
                               }
-                              throw (t.events.emit("routeChangeError", z, w, g),
-                              z);
-                            case 117:
+                              throw (t.events.emit("routeChangeError", Q, x, b),
+                              Q);
+                            case 120:
                               return (
-                                t.events.emit("routeChangeComplete", a, g),
+                                t.events.emit("routeChangeComplete", a, b),
                                 e.abrupt("return", !0)
                               );
-                            case 122:
+                            case 125:
                               if (
-                                ((e.prev = 122),
+                                ((e.prev = 125),
                                 (e.t2 = e.catch(79)),
                                 !e.t2.cancelled)
                               ) {
-                                e.next = 126;
+                                e.next = 129;
                                 break;
                               }
                               return e.abrupt("return", !1);
-                            case 126:
+                            case 129:
                               throw e.t2;
-                            case 127:
+                            case 130:
                             case "end":
                               return e.stop();
                           }
@@ -1369,13 +1381,13 @@
                       this,
                       [
                         [36, 46],
-                        [79, 122],
-                        [96, 102]
+                        [79, 125],
+                        [100, 106]
                       ]
                     );
                   })
                 );
-                return function(t, r, n, o, a) {
+                return function(t, r, n, o, a, i) {
                   return e.apply(this, arguments);
                 };
               })()
@@ -1426,7 +1438,7 @@
                               }
                               throw (t.events.emit("routeChangeError", r, i, u),
                               (window.location.href = i),
-                              w());
+                              b());
                             case 6:
                               if (
                                 ((e.prev = 6),
@@ -1515,16 +1527,16 @@
               key: "getRouteInfo",
               value: (function() {
                 var t = o(
-                  n.mark(function t(e, r, o, a, i, u) {
-                    var c,
-                      s,
+                  n.mark(function t(e, r, o, a, i, u, c) {
+                    var s,
                       l,
                       f,
                       p,
                       d,
                       v,
                       y,
-                      m = this;
+                      m,
+                      g = this;
                     return n.wrap(
                       function(t) {
                         for (;;)
@@ -1532,19 +1544,19 @@
                             case 0:
                               if (
                                 ((t.prev = 0),
-                                (c = this.components[e]),
-                                !u.shallow || !c || this.route !== e)
+                                (s = this.components[e]),
+                                !c || !s)
                               ) {
                                 t.next = 4;
                                 break;
                               }
-                              return t.abrupt("return", c);
+                              return t.abrupt("return", s);
                             case 4:
-                              if (!(s = c && "initial" in c ? void 0 : c)) {
+                              if (!(l = s && "initial" in s ? void 0 : s)) {
                                 t.next = 9;
                                 break;
                               }
-                              (t.t0 = s), (t.next = 12);
+                              (t.t0 = l), (t.next = 12);
                               break;
                             case 9:
                               return (
@@ -1561,31 +1573,31 @@
                             case 11:
                               t.t0 = t.sent;
                             case 12:
-                              (l = t.t0),
-                                (f = l.Component),
-                                (p = l.__N_SSG),
-                                (d = l.__N_SSP),
+                              (f = t.t0),
+                                (p = f.Component),
+                                (d = f.__N_SSG),
+                                (v = f.__N_SSP),
                                 (t.next = 18);
                               break;
                             case 18:
                               return (
-                                (p || d) &&
-                                  (v = this.pageLoader.getDataHref(
+                                (d || v) &&
+                                  (y = this.pageLoader.getDataHref(
                                     (0, h.formatWithValidation)({
                                       pathname: r,
                                       query: o
                                     }),
                                     i,
-                                    p,
+                                    d,
                                     this.locale
                                   )),
                                 (t.next = 21),
                                 this._getData(function() {
-                                  return p
-                                    ? m._getStaticData(v)
-                                    : d
-                                    ? m._getServerData(v)
-                                    : m.getInitialProps(f, {
+                                  return d
+                                    ? g._getStaticData(y)
+                                    : v
+                                    ? g._getServerData(y)
+                                    : g.getInitialProps(p, {
                                         pathname: r,
                                         query: o,
                                         asPath: a
@@ -1594,10 +1606,10 @@
                               );
                             case 21:
                               return (
-                                (y = t.sent),
-                                (l.props = y),
-                                (this.components[e] = l),
-                                t.abrupt("return", l)
+                                (m = t.sent),
+                                (f.props = m),
+                                (this.components[e] = f),
+                                t.abrupt("return", f)
                               );
                             case 27:
                               return (
@@ -1619,7 +1631,7 @@
                     );
                   })
                 );
-                return function(e, r, n, o, a, i) {
+                return function(e, r, n, o, a, i, u) {
                   return t.apply(this, arguments);
                 };
               })()
@@ -1890,7 +1902,7 @@
               key: "abortComponentLoad",
               value: function(e, r) {
                 this.clc &&
-                  (t.events.emit("routeChangeError", w(), e, r),
+                  (t.events.emit("routeChangeError", b(), e, r),
                   this.clc(),
                   (this.clc = null));
               }
@@ -2181,14 +2193,14 @@
         function y() {}
         function m() {}
         function g() {}
-        var w = {};
-        w[a] = function() {
+        var b = {};
+        b[a] = function() {
           return this;
         };
-        var b = Object.getPrototypeOf,
-          _ = b && b(b(O([])));
-        _ && _ !== r && n.call(_, a) && (w = _);
-        var x = (g.prototype = y.prototype = Object.create(w));
+        var w = Object.getPrototypeOf,
+          _ = w && w(w(O([])));
+        _ && _ !== r && n.call(_, a) && (b = _);
+        var x = (g.prototype = y.prototype = Object.create(b));
         function k(t) {
           ["next", "throw", "return"].forEach(function(e) {
             c(t, e, function(t) {
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "RVckWv64wfKyy5R8j8i0v",
+        "buildId": "_h3OnN-nug0IZL6oTmdkk",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       as="script"
     />
     <link
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "RVckWv64wfKyy5R8j8i0v",
+        "buildId": "_h3OnN-nug0IZL6oTmdkk",
         "isFallback": false,
         "gip": true
       }
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       async=""
     ></script>
     <script
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "RVckWv64wfKyy5R8j8i0v",
+        "buildId": "_h3OnN-nug0IZL6oTmdkk",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.4826dee40eb7293b5cb0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.33253ff661663be75080.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_buildManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/RVckWv64wfKyy5R8j8i0v/_ssgManifest.js"
+      src="/_next/static/_h3OnN-nug0IZL6oTmdkk/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 568d4ca9197d2bb28a361eccd574b85304a8db83

ijjk avatar Feb 14 '21 12:02 ijjk

Failing test suites

Commit: 568d4ca9197d2bb28a361eccd574b85304a8db83

test/integration/build-output/test/index.test.js

  • Build Output > Crypto Application > should not include crypto
Expand output

● Build Output › Crypto Application › should not include crypto

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 66.6
Received:    66.7

  169 |       expect(indexSize.endsWith('kB')).toBe(true)
  170 | 
> 171 |       expect(parseFloat(indexFirstLoad)).toBeLessThanOrEqual(66.6)
      |                                          ^
  172 |       expect(parseFloat(indexFirstLoad)).toBeGreaterThanOrEqual(60)
  173 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  174 |     })

  at Object.<anonymous> (integration/build-output/test/index.test.js:171:42)

ijjk avatar Feb 14 '21 12:02 ijjk

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 11.6s 11.1s -408ms
nodeModulesSize 42.6 MB 42.6 MB ⚠️ +1.09 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.1 2.102 0
/ avg req/sec 1190.29 1189.16 ⚠️ -1.13
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.316 1.317 0
/error-in-render avg req/sec 1899.55 1898.8 ⚠️ -0.75
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..854c.js gzip 13.2 kB 13.2 kB ⚠️ +12 B
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.6 kB 59.6 kB ⚠️ +12 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 615 B 615 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 609 B ⚠️ +1 B
Overall change 1.84 kB 1.84 kB ⚠️ +1 B

Diffs

Diff for 677f882d2ed8..7143b2168.js
@@ -1668,7 +1668,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 shallow: options.shallow && _this._shallow,
                 locale: options.locale || _this.defaultLocale
               }),
-              forcedScroll
+              forcedScroll,
+              true
             );
           }; // represents the current component key
 
@@ -1825,7 +1826,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   url,
                   as,
                   options,
-                  forcedScroll
+                  forcedScroll,
+                  isPopState
                 ) {
                   var _this2 = this;
 
@@ -1858,6 +1860,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     shouldInterpolate,
                     interpolatedAs,
                     missingParams,
+                    isSamePageURLChange,
+                    isPopStateShallowRoute,
+                    isValidShallowRoute,
                     routeInfo,
                     _routeInfo,
                     error,
@@ -1870,8 +1875,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     newUrl,
                     newAs,
                     notFoundRoute,
-                    appComp,
-                    isValidShallowRoute;
+                    appComp;
 
                   return _regeneratorRuntime.wrap(
                     function _callee$(_context) {
@@ -2222,17 +2226,23 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               routeProps
                             );
                             _context.prev = 79;
-                            _context.next = 82;
+                            isSamePageURLChange = this.route === route;
+                            isPopStateShallowRoute = isPopState && !!false;
+                            isValidShallowRoute =
+                              (options.shallow && isSamePageURLChange) ||
+                              isPopStateShallowRoute;
+                            _context.next = 85;
                             return this.getRouteInfo(
                               route,
                               pathname,
                               query,
                               as,
                               resolvedAs,
-                              routeProps
+                              routeProps,
+                              isValidShallowRoute
                             );
 
-                          case 82:
+                          case 85:
                             routeInfo = _context.sent;
                             (_routeInfo = routeInfo),
                               (error = _routeInfo.error),
@@ -2241,14 +2251,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               (__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
 
                             if (!((__N_SSG || __N_SSP) && props)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
                             if (
                               !(props.pageProps && props.pageProps.__N_REDIRECT)
                             ) {
-                              _context.next = 95;
+                              _context.next = 98;
                               break;
                             }
 
@@ -2257,7 +2267,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             // it's not
 
                             if (!destination.startsWith("/")) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2267,7 +2277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this._resolveHref(parsedHref, pages, false);
 
                             if (!pages.includes(parsedHref.pathname)) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2283,37 +2293,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               this.change(method, newUrl, newAs, options)
                             );
 
-                          case 93:
+                          case 96:
                             window.location.href = destination;
                             return _context.abrupt(
                               "return",
                               new Promise(function() {})
                             );
 
-                          case 95:
+                          case 98:
                             this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
 
                             if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
-                            _context.prev = 97;
-                            _context.next = 100;
+                            _context.prev = 100;
+                            _context.next = 103;
                             return this.fetchComponent("/404");
 
-                          case 100:
+                          case 103:
                             notFoundRoute = "/404";
-                            _context.next = 106;
+                            _context.next = 109;
                             break;
 
-                          case 103:
-                            _context.prev = 103;
-                            _context.t1 = _context["catch"](97);
+                          case 106:
+                            _context.prev = 106;
+                            _context.t1 = _context["catch"](100);
                             notFoundRoute = "/_error";
 
-                          case 106:
-                            _context.next = 108;
+                          case 109:
+                            _context.next = 111;
                             return this.getRouteInfo(
                               notFoundRoute,
                               notFoundRoute,
@@ -2322,13 +2332,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               resolvedAs,
                               {
                                 shallow: false
-                              }
+                              },
+                              false
                             );
 
-                          case 108:
+                          case 111:
                             routeInfo = _context.sent;
 
-                          case 109:
+                          case 112:
                             Router.events.emit(
                               "beforeHistoryChange",
                               as,
@@ -2337,11 +2348,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this.changeState(method, url, as, options);
 
                             if (false) {
-                            } // shallow routing is only allowed for same page URL changes.
+                            }
 
-                            isValidShallowRoute =
-                              options.shallow && this.route === route;
-                            _context.next = 115;
+                            _context.next = 117;
                             return this.set(
                               route,
                               pathname,
@@ -2360,9 +2369,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               else throw e;
                             });
 
-                          case 115:
+                          case 117:
                             if (!error) {
-                              _context.next = 118;
+                              _context.next = 120;
                               break;
                             }
 
@@ -2374,7 +2383,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             throw error;
 
-                          case 118:
+                          case 120:
                             if (false) {
                             }
 
@@ -2385,21 +2394,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             return _context.abrupt("return", true);
 
-                          case 123:
-                            _context.prev = 123;
+                          case 125:
+                            _context.prev = 125;
                             _context.t2 = _context["catch"](79);
 
                             if (!_context.t2.cancelled) {
-                              _context.next = 127;
+                              _context.next = 129;
                               break;
                             }
 
                             return _context.abrupt("return", false);
 
-                          case 127:
+                          case 129:
                             throw _context.t2;
 
-                          case 128:
+                          case 130:
                           case "end":
                             return _context.stop();
                         }
@@ -2409,14 +2418,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     this,
                     [
                       [36, 46],
-                      [79, 123],
-                      [97, 103]
+                      [79, 125],
+                      [100, 106]
                     ]
                   );
                 })
               );
 
-              function change(_x, _x2, _x3, _x4, _x5) {
+              function change(_x, _x2, _x3, _x4, _x5, _x6) {
                 return _change.apply(this, arguments);
               }
 
@@ -2601,7 +2610,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+              function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
                 return _handleRouteInfoError.apply(this, arguments);
               }
 
@@ -2618,7 +2627,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   query,
                   as,
                   resolvedAs,
-                  routeProps
+                  routeProps,
+                  isValidShallowRoute
                 ) {
                   var _this3 = this;
 
@@ -2641,13 +2651,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             _context3.prev = 0;
                             existingRouteInfo = this.components[route];
 
-                            if (
-                              !(
-                                routeProps.shallow &&
-                                existingRouteInfo &&
-                                this.route === route
-                              )
-                            ) {
+                            if (!(isValidShallowRoute && existingRouteInfo)) {
                               _context3.next = 4;
                               break;
                             }
@@ -2786,7 +2790,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+              function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
                 return _getRouteInfo.apply(this, arguments);
               }
 
@@ -3024,7 +3028,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function prefetch(_x18) {
+              function prefetch(_x20) {
                 return _prefetch.apply(this, arguments);
               }
 
@@ -3089,7 +3093,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function fetchComponent(_x19) {
+              function fetchComponent(_x21) {
                 return _fetchComponent.apply(this, arguments);
               }
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       async=""
     ></script>
     <script
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       as="script"
     />
     <link
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       async=""
     ></script>
     <script
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.7a8444d5b037143b2168.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.36b107ad72ff1d1fa4da.js"
       async=""
     ></script>
     <script

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 13.3s 13.9s ⚠️ +564ms
nodeModulesSize 42.6 MB 42.6 MB ⚠️ +1.09 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..854c.js gzip 13.2 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
677f882d2ed8..34d0.js gzip N/A 13.2 kB N/A
Overall change 59.6 kB 59.6 kB ⚠️ +12 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB ⚠️ +122 B
routerDirect.js 1.06 MB 1.06 MB ⚠️ +122 B
withRouter.js 1.06 MB 1.06 MB ⚠️ +122 B
Overall change 5.2 MB 5.2 MB ⚠️ +366 B

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 12.9s 13.1s ⚠️ +119ms
nodeModulesSize 42.6 MB 42.6 MB ⚠️ +1.09 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.059 2.096 ⚠️ +0.04
/ avg req/sec 1213.96 1192.63 ⚠️ -21.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.233 1.26 ⚠️ +0.03
/error-in-render avg req/sec 2027.3 1983.39 ⚠️ -43.91
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
597-dc8125e2..ef24.js gzip 13.1 kB 13.2 kB ⚠️ +9 B
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 60 kB 60 kB ⚠️ +9 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-aedc815..1421.js gzip 1.26 kB 1.26 kB
_error-71ec2..1a96.js gzip 3.38 kB 3.38 kB
amp-33a09cb0..6745.js gzip 536 B 536 B
hooks-4e968a..f870.js gzip 902 B 902 B
index-5c6845..f75c.js gzip 230 B 230 B
link-99f0c6c..b84a.js gzip 1.65 kB 1.65 kB
routerDirect..bb56.js gzip 306 B 306 B
withRouter-7..2133.js gzip 302 B 302 B
Overall change 8.57 kB 8.57 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 326 B 326 B
Overall change 326 B 326 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 586 B 587 B ⚠️ +1 B
link.html gzip 593 B 594 B ⚠️ +1 B
withRouter.html gzip 582 B 583 B ⚠️ +1 B
Overall change 1.76 kB 1.76 kB ⚠️ +3 B

Diffs

Diff for 677f882d2ed8..a6351854c.js
@@ -948,7 +948,8 @@
                         shallow: o.shallow && i._shallow,
                         locale: o.locale || i.defaultLocale
                       }),
-                      undefined
+                      undefined,
+                      !0
                     );
                 }
               } else {
@@ -1045,9 +1046,8 @@
               key: "change",
               value: (function() {
                 var e = o(
-                  n.mark(function e(r, o, a, i, u) {
-                    var l,
-                      f,
+                  n.mark(function e(r, o, a, i, u, l) {
+                    var f,
                       v,
                       g,
                       w,
@@ -1078,7 +1078,10 @@
                       tt,
                       et,
                       rt,
-                      nt;
+                      nt,
+                      ot,
+                      at,
+                      it;
                     return n.wrap(
                       function(e) {
                         for (;;)
@@ -1094,20 +1097,20 @@
                               );
                             case 3:
                               i._h && (this.isReady = !0),
-                                (i.scroll = !(null != (l = i.scroll) && !l)),
-                                (f = i.locale !== this.locale),
+                                (i.scroll = !(null != (f = i.scroll) && !f)),
+                                (v = i.locale !== this.locale),
                                 (e.next = 18);
                               break;
                             case 18:
                               if (
                                 (i._h || (this.isSsr = !1),
                                 h.ST && performance.mark("routeChange"),
-                                (v = i.shallow),
-                                (g = { shallow: void 0 !== v && v }),
+                                (g = i.shallow),
+                                (w = { shallow: void 0 !== g && g }),
                                 this._inFlightRoute &&
                                   this.abortComponentLoad(
                                     this._inFlightRoute,
-                                    g
+                                    w
                                   ),
                                 (a = k(
                                   b(
@@ -1116,39 +1119,39 @@
                                     this.defaultLocale
                                   )
                                 )),
-                                (w = _(P(a) ? S(a) : a, this.locale)),
+                                (x = _(P(a) ? S(a) : a, this.locale)),
                                 (this._inFlightRoute = a),
-                                i._h || !this.onlyAHashChange(w))
+                                i._h || !this.onlyAHashChange(x))
                               ) {
                                 e.next = 34;
                                 break;
                               }
                               return (
-                                (this.asPath = w),
-                                t.events.emit("hashChangeStart", a, g),
+                                (this.asPath = x),
+                                t.events.emit("hashChangeStart", a, w),
                                 this.changeState(r, o, a, i),
-                                this.scrollToHash(w),
+                                this.scrollToHash(x),
                                 this.notify(this.components[this.route], null),
-                                t.events.emit("hashChangeComplete", a, g),
+                                t.events.emit("hashChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
                             case 34:
                               return (
-                                (x = (0, d.parseRelativeUrl)(o)),
-                                (C = (O = x).pathname),
-                                (T = O.query),
+                                (O = (0, d.parseRelativeUrl)(o)),
+                                (T = (C = O).pathname),
+                                (A = C.query),
                                 (e.prev = 36),
                                 (e.next = 39),
                                 this.pageLoader.getPageList()
                               );
                             case 39:
                               return (
-                                (A = e.sent),
+                                (D = e.sent),
                                 (e.next = 42),
                                 (0, s.getClientBuildManifest)()
                               );
                             case 42:
-                              (D = e.sent), D.__rewrites, (e.next = 50);
+                              (M = e.sent), M.__rewrites, (e.next = 50);
                               break;
                             case 46:
                               return (
@@ -1159,15 +1162,15 @@
                               );
                             case 50:
                               if (
-                                ((x = this._resolveHref(x, A)).pathname !== C &&
-                                  ((C = x.pathname),
-                                  (o = (0, h.formatWithValidation)(x))),
-                                (C = C
-                                  ? (0, c.removePathTrailingSlash)(S(C))
-                                  : C),
-                                this.urlIsNew(w) || f || (r = "replaceState"),
-                                (M = (0, c.removePathTrailingSlash)(C)),
-                                (N = a),
+                                ((O = this._resolveHref(O, D)).pathname !== T &&
+                                  ((T = O.pathname),
+                                  (o = (0, h.formatWithValidation)(O))),
+                                (T = T
+                                  ? (0, c.removePathTrailingSlash)(S(T))
+                                  : T),
+                                this.urlIsNew(x) || v || (r = "replaceState"),
+                                (N = (0, c.removePathTrailingSlash)(T)),
+                                (U = a),
                                 E(a))
                               ) {
                                 e.next = 62;
@@ -1182,29 +1185,29 @@
                               );
                             case 62:
                               if (
-                                ((N = _(S(N), this.locale)),
-                                !(0, p.isDynamicRoute)(M))
+                                ((U = _(S(U), this.locale)),
+                                !(0, p.isDynamicRoute)(N))
                               ) {
                                 e.next = 78;
                                 break;
                               }
                               if (
-                                ((U = (0, d.parseRelativeUrl)(N)),
-                                (W = U.pathname),
-                                (q = (0, m.getRouteRegex)(M)),
-                                (F = (0, y.getRouteMatcher)(q)(W)),
-                                (B = (G = M === W) ? R(M, W, T) : {}),
-                                F && (!G || B.result))
+                                ((W = (0, d.parseRelativeUrl)(U)),
+                                (q = W.pathname),
+                                (F = (0, m.getRouteRegex)(N)),
+                                (G = (0, y.getRouteMatcher)(F)(q)),
+                                (H = (B = N === q) ? R(N, q, A) : {}),
+                                G && (!B || H.result))
                               ) {
                                 e.next = 77;
                                 break;
                               }
                               if (
                                 !(
-                                  (H = Object.keys(q.groups).filter(function(
+                                  (V = Object.keys(F.groups).filter(function(
                                     t
                                   ) {
-                                    return !T[t];
+                                    return !A[t];
                                   })).length > 0
                                 )
                               ) {
@@ -1212,24 +1215,24 @@
                                 break;
                               }
                               throw new Error(
-                                (G
+                                (B
                                   ? "The provided `href` ("
                                       .concat(
                                         o,
                                         ") value is missing query values ("
                                       )
                                       .concat(
-                                        H.join(", "),
+                                        V.join(", "),
                                         ") to be interpolated properly. "
                                       )
                                   : "The provided `as` value ("
                                       .concat(
-                                        W,
+                                        q,
                                         ") is incompatible with the `href` value ("
                                       )
-                                      .concat(M, "). ")) +
+                                      .concat(N, "). ")) +
                                   "Read more: https://err.sh/vercel/next.js/".concat(
-                                    G
+                                    B
                                       ? "href-interpolation-failed"
                                       : "incompatible-href-as"
                                   )
@@ -1238,134 +1241,142 @@
                               e.next = 78;
                               break;
                             case 77:
-                              G
+                              B
                                 ? (a = (0, h.formatWithValidation)(
-                                    Object.assign({}, U, {
-                                      pathname: B.result,
-                                      query: L(T, B.params)
+                                    Object.assign({}, W, {
+                                      pathname: H.result,
+                                      query: L(A, H.params)
                                     })
                                   ))
-                                : Object.assign(T, F);
+                                : Object.assign(A, G);
                             case 78:
                               return (
-                                t.events.emit("routeChangeStart", a, g),
+                                t.events.emit("routeChangeStart", a, w),
                                 (e.prev = 79),
-                                (e.next = 82),
-                                this.getRouteInfo(M, C, T, a, N, g)
+                                (X = this.route === N),
+                                (z = l && !1),
+                                (J = (i.shallow && X) || z),
+                                (e.next = 85),
+                                this.getRouteInfo(N, T, A, a, U, w, J)
                               );
-                            case 82:
+                            case 85:
                               if (
-                                ((V = e.sent),
-                                (z = (X = V).error),
-                                (J = X.props),
-                                ($ = X.__N_SSG),
-                                (Y = X.__N_SSP),
-                                (!$ && !Y) || !J)
+                                (($ = e.sent),
+                                (Q = (Y = $).error),
+                                (Z = Y.props),
+                                (K = Y.__N_SSG),
+                                (tt = Y.__N_SSP),
+                                (!K && !tt) || !Z)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
-                              if (!J.pageProps || !J.pageProps.__N_REDIRECT) {
-                                e.next = 95;
+                              if (!Z.pageProps || !Z.pageProps.__N_REDIRECT) {
+                                e.next = 98;
                                 break;
                               }
                               if (
-                                !(Q = J.pageProps.__N_REDIRECT).startsWith("/")
+                                !(et = Z.pageProps.__N_REDIRECT).startsWith("/")
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               if (
-                                ((Z = (0, d.parseRelativeUrl)(Q)),
-                                this._resolveHref(Z, A, !1),
-                                !A.includes(Z.pathname))
+                                ((rt = (0, d.parseRelativeUrl)(et)),
+                                this._resolveHref(rt, D, !1),
+                                !D.includes(rt.pathname))
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               return (
-                                (K = I(this, Q, Q)),
-                                (tt = K.url),
-                                (et = K.as),
-                                e.abrupt("return", this.change(r, tt, et, i))
+                                (nt = I(this, et, et)),
+                                (ot = nt.url),
+                                (at = nt.as),
+                                e.abrupt("return", this.change(r, ot, at, i))
                               );
-                            case 93:
+                            case 96:
                               return (
-                                (window.location.href = Q),
+                                (window.location.href = et),
                                 e.abrupt("return", new Promise(function() {}))
                               );
-                            case 95:
+                            case 98:
                               if (
-                                ((this.isPreview = !!J.__N_PREVIEW),
-                                J.notFound !== j)
+                                ((this.isPreview = !!Z.__N_PREVIEW),
+                                Z.notFound !== j)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
                               return (
-                                (e.prev = 97),
-                                (e.next = 100),
+                                (e.prev = 100),
+                                (e.next = 103),
                                 this.fetchComponent("/404")
                               );
-                            case 100:
-                              (rt = "/404"), (e.next = 106);
-                              break;
                             case 103:
-                              (e.prev = 103),
-                                (e.t1 = e.catch(97)),
-                                (rt = "/_error");
+                              (it = "/404"), (e.next = 109);
+                              break;
                             case 106:
+                              (e.prev = 106),
+                                (e.t1 = e.catch(100)),
+                                (it = "/_error");
+                            case 109:
                               return (
-                                (e.next = 108),
-                                this.getRouteInfo(rt, rt, T, a, N, {
-                                  shallow: !1
-                                })
+                                (e.next = 111),
+                                this.getRouteInfo(
+                                  it,
+                                  it,
+                                  A,
+                                  a,
+                                  U,
+                                  { shallow: !1 },
+                                  !1
+                                )
                               );
-                            case 108:
-                              V = e.sent;
-                            case 109:
+                            case 111:
+                              $ = e.sent;
+                            case 112:
                               return (
-                                t.events.emit("beforeHistoryChange", a, g),
+                                t.events.emit("beforeHistoryChange", a, w),
                                 this.changeState(r, o, a, i),
-                                (nt = i.shallow && this.route === M),
-                                (e.next = 115),
+                                (e.next = 117),
                                 this.set(
-                                  M,
-                                  C,
+                                  N,
                                   T,
-                                  w,
-                                  V,
-                                  u || (nt || !i.scroll ? null : { x: 0, y: 0 })
+                                  A,
+                                  x,
+                                  $,
+                                  u || (J || !i.scroll ? null : { x: 0, y: 0 })
                                 ).catch(function(t) {
                                   if (!t.cancelled) throw t;
-                                  z = z || t;
+                                  Q = Q || t;
                                 })
                               );
-                            case 115:
-                              if (!z) {
-                                e.next = 118;
+                            case 117:
+                              if (!Q) {
+                                e.next = 120;
                                 break;
                               }
-                              throw (t.events.emit("routeChangeError", z, w, g),
-                              z);
-                            case 118:
+                              throw (t.events.emit("routeChangeError", Q, x, w),
+                              Q);
+                            case 120:
                               return (
-                                t.events.emit("routeChangeComplete", a, g),
+                                t.events.emit("routeChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
-                            case 123:
+                            case 125:
                               if (
-                                ((e.prev = 123),
+                                ((e.prev = 125),
                                 (e.t2 = e.catch(79)),
                                 !e.t2.cancelled)
                               ) {
-                                e.next = 127;
+                                e.next = 129;
                                 break;
                               }
                               return e.abrupt("return", !1);
-                            case 127:
+                            case 129:
                               throw e.t2;
-                            case 128:
+                            case 130:
                             case "end":
                               return e.stop();
                           }
@@ -1374,13 +1385,13 @@
                       this,
                       [
                         [36, 46],
-                        [79, 123],
-                        [97, 103]
+                        [79, 125],
+                        [100, 106]
                       ]
                     );
                   })
                 );
-                return function(t, r, n, o, a) {
+                return function(t, r, n, o, a, i) {
                   return e.apply(this, arguments);
                 };
               })()
@@ -1520,16 +1531,16 @@
               key: "getRouteInfo",
               value: (function() {
                 var t = o(
-                  n.mark(function t(e, r, o, a, i, u) {
-                    var c,
-                      s,
+                  n.mark(function t(e, r, o, a, i, u, c) {
+                    var s,
                       l,
                       f,
                       p,
                       d,
                       v,
                       y,
-                      m = this;
+                      m,
+                      g = this;
                     return n.wrap(
                       function(t) {
                         for (;;)
@@ -1537,19 +1548,19 @@
                             case 0:
                               if (
                                 ((t.prev = 0),
-                                (c = this.components[e]),
-                                !u.shallow || !c || this.route !== e)
+                                (s = this.components[e]),
+                                !c || !s)
                               ) {
                                 t.next = 4;
                                 break;
                               }
-                              return t.abrupt("return", c);
+                              return t.abrupt("return", s);
                             case 4:
-                              if (!(s = c && "initial" in c ? void 0 : c)) {
+                              if (!(l = s && "initial" in s ? void 0 : s)) {
                                 t.next = 9;
                                 break;
                               }
-                              (t.t0 = s), (t.next = 12);
+                              (t.t0 = l), (t.next = 12);
                               break;
                             case 9:
                               return (
@@ -1566,31 +1577,31 @@
                             case 11:
                               t.t0 = t.sent;
                             case 12:
-                              (l = t.t0),
-                                (f = l.Component),
-                                (p = l.__N_SSG),
-                                (d = l.__N_SSP),
+                              (f = t.t0),
+                                (p = f.Component),
+                                (d = f.__N_SSG),
+                                (v = f.__N_SSP),
                                 (t.next = 18);
                               break;
                             case 18:
                               return (
-                                (p || d) &&
-                                  (v = this.pageLoader.getDataHref(
+                                (d || v) &&
+                                  (y = this.pageLoader.getDataHref(
                                     (0, h.formatWithValidation)({
                                       pathname: r,
                                       query: o
                                     }),
                                     i,
-                                    p,
+                                    d,
                                     this.locale
                                   )),
                                 (t.next = 21),
                                 this._getData(function() {
-                                  return p
-                                    ? m._getStaticData(v)
-                                    : d
-                                    ? m._getServerData(v)
-                                    : m.getInitialProps(f, {
+                                  return d
+                                    ? g._getStaticData(y)
+                                    : v
+                                    ? g._getServerData(y)
+                                    : g.getInitialProps(p, {
                                         pathname: r,
                                         query: o,
                                         asPath: a
@@ -1599,10 +1610,10 @@
                               );
                             case 21:
                               return (
-                                (y = t.sent),
-                                (l.props = y),
-                                (this.components[e] = l),
-                                t.abrupt("return", l)
+                                (m = t.sent),
+                                (f.props = m),
+                                (this.components[e] = f),
+                                t.abrupt("return", f)
                               );
                             case 27:
                               return (
@@ -1624,7 +1635,7 @@
                     );
                   })
                 );
-                return function(e, r, n, o, a, i) {
+                return function(e, r, n, o, a, i, u) {
                   return t.apply(this, arguments);
                 };
               })()
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "xoKqxgI25fjTifyHZEYtd",
+        "buildId": "jz_o1M10-14MKp_F_vhzW",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       as="script"
     />
     <link
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "xoKqxgI25fjTifyHZEYtd",
+        "buildId": "jz_o1M10-14MKp_F_vhzW",
         "isFallback": false,
         "gip": true
       }
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       async=""
     ></script>
     <script
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "xoKqxgI25fjTifyHZEYtd",
+        "buildId": "jz_o1M10-14MKp_F_vhzW",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.66488b33a5ba6351854c.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.90d9b027db693ec234d0.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_buildManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/xoKqxgI25fjTifyHZEYtd/_ssgManifest.js"
+      src="/_next/static/jz_o1M10-14MKp_F_vhzW/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: f386e0f352a666ebc1b983e88fb2b94806b73cca

ijjk avatar Feb 20 '21 05:02 ijjk

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 11.6s 11.5s -76ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.09 kB
Page Load Tests Overall increase ✓
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.157 2.208 ⚠️ +0.05
/ avg req/sec 1159.2 1132.5 ⚠️ -26.7
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.565 1.532 -0.03
/error-in-render avg req/sec 1597.81 1631.33 +33.52
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..e7a0.js gzip 13.4 kB 13.4 kB ⚠️ +9 B
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.7 kB 59.7 kB ⚠️ +9 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 613 B 614 B ⚠️ +1 B
link.html gzip 620 B 620 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB ⚠️ +1 B

Diffs

Diff for 677f882d2ed8..5ec6837e3.js
@@ -1703,7 +1703,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 shallow: options.shallow && _this._shallow,
                 locale: options.locale || _this.defaultLocale
               }),
-              forcedScroll
+              forcedScroll,
+              true
             );
           }; // represents the current component key
 
@@ -1860,7 +1861,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   url,
                   as,
                   options,
-                  forcedScroll
+                  forcedScroll,
+                  isPopState
                 ) {
                   var _options$scroll,
                     localeChange,
@@ -1893,6 +1895,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     missingParams,
                     _self$__NEXT_DATA__$p,
                     _self$__NEXT_DATA__$p2,
+                    isSamePageURLChange,
+                    isPopStateShallowRoute,
+                    isValidShallowRoute,
                     routeInfo,
                     _routeInfo,
                     error,
@@ -1905,8 +1910,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     newUrl,
                     newAs,
                     notFoundRoute,
-                    appComp,
-                    isValidShallowRoute;
+                    appComp;
 
                   return _regeneratorRuntime.wrap(
                     function _callee$(_context) {
@@ -2257,17 +2261,23 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               routeProps
                             );
                             _context.prev = 79;
-                            _context.next = 82;
+                            isSamePageURLChange = this.route === route;
+                            isPopStateShallowRoute = isPopState && !!false;
+                            isValidShallowRoute =
+                              (options.shallow && isSamePageURLChange) ||
+                              isPopStateShallowRoute;
+                            _context.next = 85;
                             return this.getRouteInfo(
                               route,
                               pathname,
                               query,
                               as,
                               resolvedAs,
-                              routeProps
+                              routeProps,
+                              isValidShallowRoute
                             );
 
-                          case 82:
+                          case 85:
                             routeInfo = _context.sent;
                             (_routeInfo = routeInfo),
                               (error = _routeInfo.error),
@@ -2276,14 +2286,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               (__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
 
                             if (!((__N_SSG || __N_SSP) && props)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
                             if (
                               !(props.pageProps && props.pageProps.__N_REDIRECT)
                             ) {
-                              _context.next = 95;
+                              _context.next = 98;
                               break;
                             }
 
@@ -2292,7 +2302,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             // it's not
 
                             if (!destination.startsWith("/")) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2301,7 +2311,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             resolveDynamicRoute(parsedHref, pages, false);
 
                             if (!pages.includes(parsedHref.pathname)) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2317,37 +2327,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               this.change(method, newUrl, newAs, options)
                             );
 
-                          case 93:
+                          case 96:
                             window.location.href = destination;
                             return _context.abrupt(
                               "return",
                               new Promise(function() {})
                             );
 
-                          case 95:
+                          case 98:
                             this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
 
                             if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
-                            _context.prev = 97;
-                            _context.next = 100;
+                            _context.prev = 100;
+                            _context.next = 103;
                             return this.fetchComponent("/404");
 
-                          case 100:
+                          case 103:
                             notFoundRoute = "/404";
-                            _context.next = 106;
+                            _context.next = 109;
                             break;
 
-                          case 103:
-                            _context.prev = 103;
-                            _context.t1 = _context["catch"](97);
+                          case 106:
+                            _context.prev = 106;
+                            _context.t1 = _context["catch"](100);
                             notFoundRoute = "/_error";
 
-                          case 106:
-                            _context.next = 108;
+                          case 109:
+                            _context.next = 111;
                             return this.getRouteInfo(
                               notFoundRoute,
                               notFoundRoute,
@@ -2356,13 +2366,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               resolvedAs,
                               {
                                 shallow: false
-                              }
+                              },
+                              false
                             );
 
-                          case 108:
+                          case 111:
                             routeInfo = _context.sent;
 
-                          case 109:
+                          case 112:
                             Router.events.emit(
                               "beforeHistoryChange",
                               as,
@@ -2371,10 +2382,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this.changeState(method, url, as, options);
 
                             if (false) {
-                            } // shallow routing is only allowed for same page URL changes.
-
-                            isValidShallowRoute =
-                              options.shallow && this.route === route;
+                            }
 
                             if (
                               options._h &&
@@ -2394,7 +2402,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               props.pageProps.statusCode = 500;
                             }
 
-                            _context.next = 116;
+                            _context.next = 118;
                             return this.set(
                               route,
                               pathname,
@@ -2413,9 +2421,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               else throw e;
                             });
 
-                          case 116:
+                          case 118:
                             if (!error) {
-                              _context.next = 119;
+                              _context.next = 121;
                               break;
                             }
 
@@ -2427,7 +2435,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             throw error;
 
-                          case 119:
+                          case 121:
                             if (false) {
                             }
 
@@ -2438,21 +2446,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             return _context.abrupt("return", true);
 
-                          case 124:
-                            _context.prev = 124;
+                          case 126:
+                            _context.prev = 126;
                             _context.t2 = _context["catch"](79);
 
                             if (!_context.t2.cancelled) {
-                              _context.next = 128;
+                              _context.next = 130;
                               break;
                             }
 
                             return _context.abrupt("return", false);
 
-                          case 128:
+                          case 130:
                             throw _context.t2;
 
-                          case 129:
+                          case 131:
                           case "end":
                             return _context.stop();
                         }
@@ -2462,14 +2470,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     this,
                     [
                       [36, 46],
-                      [79, 124],
-                      [97, 103]
+                      [79, 126],
+                      [100, 106]
                     ]
                   );
                 })
               );
 
-              function change(_x, _x2, _x3, _x4, _x5) {
+              function change(_x, _x2, _x3, _x4, _x5, _x6) {
                 return _change.apply(this, arguments);
               }
 
@@ -2654,7 +2662,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+              function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
                 return _handleRouteInfoError.apply(this, arguments);
               }
 
@@ -2671,7 +2679,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   query,
                   as,
                   resolvedAs,
-                  routeProps
+                  routeProps,
+                  isValidShallowRoute
                 ) {
                   var _this2 = this;
 
@@ -2694,13 +2703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             _context3.prev = 0;
                             existingRouteInfo = this.components[route];
 
-                            if (
-                              !(
-                                routeProps.shallow &&
-                                existingRouteInfo &&
-                                this.route === route
-                              )
-                            ) {
+                            if (!(isValidShallowRoute && existingRouteInfo)) {
                               _context3.next = 4;
                               break;
                             }
@@ -2839,7 +2842,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+              function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
                 return _getRouteInfo.apply(this, arguments);
               }
 
@@ -3085,7 +3088,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function prefetch(_x18) {
+              function prefetch(_x20) {
                 return _prefetch.apply(this, arguments);
               }
 
@@ -3150,7 +3153,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function fetchComponent(_x19) {
+              function fetchComponent(_x21) {
                 return _fetchComponent.apply(this, arguments);
               }
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       async=""
     ></script>
     <script
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       as="script"
     />
     <link
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       async=""
     ></script>
     <script
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.bc649bb861552e8cb8d3.js"
       async=""
     ></script>
     <script

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 13.4s 13.6s ⚠️ +193ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.09 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..e7a0.js gzip 13.4 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
677f882d2ed8..92d1.js gzip N/A 13.4 kB N/A
Overall change 59.7 kB 59.7 kB ⚠️ +9 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB ⚠️ +121 B
routerDirect.js 1.06 MB 1.06 MB ⚠️ +121 B
withRouter.js 1.06 MB 1.06 MB ⚠️ +121 B
Overall change 5.21 MB 5.21 MB ⚠️ +363 B

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 13.5s 13.6s ⚠️ +131ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.09 kB
Page Load Tests Overall increase ✓
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.119 2.073 -0.05
/ avg req/sec 1179.97 1206.26 +26.29
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.512 1.434 -0.08
/error-in-render avg req/sec 1653.77 1743.09 +89.32
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
597-74632e79..1d47.js gzip 13.3 kB 13.3 kB ⚠️ +8 B
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.59 kB 6.59 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 60.1 kB 60.1 kB ⚠️ +8 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-aedc815..1421.js gzip 1.26 kB 1.26 kB
_error-71ec2..1a96.js gzip 3.38 kB 3.38 kB
amp-33a09cb0..6745.js gzip 536 B 536 B
hooks-4e968a..f870.js gzip 902 B 902 B
index-5c6845..f75c.js gzip 230 B 230 B
link-99f0c6c..b84a.js gzip 1.65 kB 1.65 kB
routerDirect..bb56.js gzip 306 B 306 B
withRouter-7..2133.js gzip 302 B 302 B
Overall change 8.57 kB 8.57 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 326 B 326 B
Overall change 326 B 326 B
Rendered Page Sizes
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 586 B 586 B
link.html gzip 593 B 593 B
withRouter.html gzip 581 B 581 B
Overall change 1.76 kB 1.76 kB

Diffs

Diff for 677f882d2ed8..eaa79e7a0.js
@@ -971,7 +971,8 @@
                         shallow: o.shallow && i._shallow,
                         locale: o.locale || i.defaultLocale
                       }),
-                      undefined
+                      undefined,
+                      !0
                     );
                 }
               } else {
@@ -1068,9 +1069,8 @@
               key: "change",
               value: (function() {
                 var e = o(
-                  n.mark(function e(r, o, a, i, u) {
-                    var l,
-                      f,
+                  n.mark(function e(r, o, a, i, u, l) {
+                    var f,
                       v,
                       y,
                       w,
@@ -1103,7 +1103,10 @@
                       nt,
                       ot,
                       at,
-                      it;
+                      it,
+                      ut,
+                      st,
+                      ct;
                     return n.wrap(
                       function(e) {
                         for (;;)
@@ -1119,20 +1122,20 @@
                               );
                             case 3:
                               i._h && (this.isReady = !0),
-                                (i.scroll = !(null != (l = i.scroll) && !l)),
-                                (f = i.locale !== this.locale),
+                                (i.scroll = !(null != (f = i.scroll) && !f)),
+                                (v = i.locale !== this.locale),
                                 (e.next = 18);
                               break;
                             case 18:
                               if (
                                 (i._h || (this.isSsr = !1),
                                 h.ST && performance.mark("routeChange"),
-                                (v = i.shallow),
-                                (y = { shallow: void 0 !== v && v }),
+                                (y = i.shallow),
+                                (w = { shallow: void 0 !== y && y }),
                                 this._inFlightRoute &&
                                   this.abortComponentLoad(
                                     this._inFlightRoute,
-                                    y
+                                    w
                                   ),
                                 (a = S(
                                   _(
@@ -1141,39 +1144,39 @@
                                     this.defaultLocale
                                   )
                                 )),
-                                (w = x(k(a) ? E(a) : a, this.locale)),
+                                (b = x(k(a) ? E(a) : a, this.locale)),
                                 (this._inFlightRoute = a),
-                                i._h || !this.onlyAHashChange(w))
+                                i._h || !this.onlyAHashChange(b))
                               ) {
                                 e.next = 34;
                                 break;
                               }
                               return (
-                                (this.asPath = w),
-                                t.events.emit("hashChangeStart", a, y),
+                                (this.asPath = b),
+                                t.events.emit("hashChangeStart", a, w),
                                 this.changeState(r, o, a, i),
-                                this.scrollToHash(w),
+                                this.scrollToHash(b),
                                 this.notify(this.components[this.route], null),
-                                t.events.emit("hashChangeComplete", a, y),
+                                t.events.emit("hashChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
                             case 34:
                               return (
-                                (b = (0, d.parseRelativeUrl)(o)),
-                                (O = (P = b).pathname),
-                                (I = P.query),
+                                (P = (0, d.parseRelativeUrl)(o)),
+                                (I = (O = P).pathname),
+                                (D = O.query),
                                 (e.prev = 36),
                                 (e.next = 39),
                                 this.pageLoader.getPageList()
                               );
                             case 39:
                               return (
-                                (D = e.sent),
+                                (M = e.sent),
                                 (e.next = 42),
                                 (0, c.getClientBuildManifest)()
                               );
                             case 42:
-                              (M = e.sent), M.__rewrites, (e.next = 50);
+                              (N = e.sent), N.__rewrites, (e.next = 50);
                               break;
                             case 46:
                               return (
@@ -1184,15 +1187,15 @@
                               );
                             case 50:
                               if (
-                                ((b = j(b, D)).pathname !== O &&
-                                  ((O = b.pathname),
-                                  (o = (0, h.formatWithValidation)(b))),
-                                (O = O
-                                  ? (0, s.removePathTrailingSlash)(E(O))
-                                  : O),
-                                this.urlIsNew(w) || f || (r = "replaceState"),
-                                (N = (0, s.removePathTrailingSlash)(O)),
-                                (U = a),
+                                ((P = j(P, M)).pathname !== I &&
+                                  ((I = P.pathname),
+                                  (o = (0, h.formatWithValidation)(P))),
+                                (I = I
+                                  ? (0, s.removePathTrailingSlash)(E(I))
+                                  : I),
+                                this.urlIsNew(b) || v || (r = "replaceState"),
+                                (U = (0, s.removePathTrailingSlash)(I)),
+                                (W = a),
                                 R(a))
                               ) {
                                 e.next = 62;
@@ -1207,29 +1210,29 @@
                               );
                             case 62:
                               if (
-                                ((U = x(E(U), this.locale)),
-                                !(0, p.isDynamicRoute)(N))
+                                ((W = x(E(W), this.locale)),
+                                !(0, p.isDynamicRoute)(U))
                               ) {
                                 e.next = 78;
                                 break;
                               }
                               if (
-                                ((W = (0, d.parseRelativeUrl)(U)),
-                                (q = W.pathname),
-                                (F = (0, g.getRouteRegex)(N)),
-                                (G = (0, m.getRouteMatcher)(F)(q)),
-                                (V = (B = N === q) ? L(N, q, I) : {}),
-                                G && (!B || V.result))
+                                ((q = (0, d.parseRelativeUrl)(W)),
+                                (F = q.pathname),
+                                (G = (0, g.getRouteRegex)(U)),
+                                (B = (0, m.getRouteMatcher)(G)(F)),
+                                (H = (V = U === F) ? L(U, F, D) : {}),
+                                B && (!V || H.result))
                               ) {
                                 e.next = 77;
                                 break;
                               }
                               if (
                                 !(
-                                  (H = Object.keys(F.groups).filter(function(
+                                  (X = Object.keys(G.groups).filter(function(
                                     t
                                   ) {
-                                    return !I[t];
+                                    return !D[t];
                                   })).length > 0
                                 )
                               ) {
@@ -1237,24 +1240,24 @@
                                 break;
                               }
                               throw new Error(
-                                (B
+                                (V
                                   ? "The provided `href` ("
                                       .concat(
                                         o,
                                         ") value is missing query values ("
                                       )
                                       .concat(
-                                        H.join(", "),
+                                        X.join(", "),
                                         ") to be interpolated properly. "
                                       )
                                   : "The provided `as` value ("
                                       .concat(
-                                        q,
+                                        F,
                                         ") is incompatible with the `href` value ("
                                       )
-                                      .concat(N, "). ")) +
+                                      .concat(U, "). ")) +
                                   "Read more: https://err.sh/vercel/next.js/".concat(
-                                    B
+                                    V
                                       ? "href-interpolation-failed"
                                       : "incompatible-href-as"
                                   )
@@ -1263,143 +1266,158 @@
                               e.next = 78;
                               break;
                             case 77:
-                              B
+                              V
                                 ? (a = (0, h.formatWithValidation)(
-                                    Object.assign({}, W, {
-                                      pathname: V.result,
-                                      query: C(I, V.params)
+                                    Object.assign({}, q, {
+                                      pathname: H.result,
+                                      query: C(D, H.params)
                                     })
                                   ))
-                                : Object.assign(I, G);
+                                : Object.assign(D, B);
                             case 78:
                               return (
-                                t.events.emit("routeChangeStart", a, y),
+                                t.events.emit("routeChangeStart", a, w),
                                 (e.prev = 79),
-                                (e.next = 82),
-                                this.getRouteInfo(N, O, I, a, U, y)
+                                ($ = this.route === U),
+                                (Y = l && !1),
+                                (Q = (i.shallow && $) || Y),
+                                (e.next = 85),
+                                this.getRouteInfo(U, I, D, a, W, w, Q)
                               );
-                            case 82:
+                            case 85:
                               if (
-                                ((J = e.sent),
-                                (Y = ($ = J).error),
-                                (Q = $.props),
-                                (Z = $.__N_SSG),
-                                (K = $.__N_SSP),
-                                (!Z && !K) || !Q)
+                                ((Z = e.sent),
+                                (tt = (K = Z).error),
+                                (et = K.props),
+                                (rt = K.__N_SSG),
+                                (nt = K.__N_SSP),
+                                (!rt && !nt) || !et)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
-                              if (!Q.pageProps || !Q.pageProps.__N_REDIRECT) {
-                                e.next = 95;
+                              if (!et.pageProps || !et.pageProps.__N_REDIRECT) {
+                                e.next = 98;
                                 break;
                               }
                               if (
-                                !(tt = Q.pageProps.__N_REDIRECT).startsWith("/")
+                                !(ot = et.pageProps.__N_REDIRECT).startsWith(
+                                  "/"
+                                )
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               if (
-                                (j((et = (0, d.parseRelativeUrl)(tt)), D, !1),
-                                !D.includes(et.pathname))
+                                (j((at = (0, d.parseRelativeUrl)(ot)), M, !1),
+                                !M.includes(at.pathname))
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               return (
-                                (rt = T(this, tt, tt)),
-                                (nt = rt.url),
-                                (ot = rt.as),
-                                e.abrupt("return", this.change(r, nt, ot, i))
+                                (it = T(this, ot, ot)),
+                                (ut = it.url),
+                                (st = it.as),
+                                e.abrupt("return", this.change(r, ut, st, i))
                               );
-                            case 93:
+                            case 96:
                               return (
-                                (window.location.href = tt),
+                                (window.location.href = ot),
                                 e.abrupt("return", new Promise(function() {}))
                               );
-                            case 95:
+                            case 98:
                               if (
-                                ((this.isPreview = !!Q.__N_PREVIEW),
-                                Q.notFound !== A)
+                                ((this.isPreview = !!et.__N_PREVIEW),
+                                et.notFound !== A)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
                               return (
-                                (e.prev = 97),
-                                (e.next = 100),
+                                (e.prev = 100),
+                                (e.next = 103),
                                 this.fetchComponent("/404")
                               );
-                            case 100:
-                              (at = "/404"), (e.next = 106);
-                              break;
                             case 103:
-                              (e.prev = 103),
-                                (e.t1 = e.catch(97)),
-                                (at = "/_error");
+                              (ct = "/404"), (e.next = 109);
+                              break;
                             case 106:
+                              (e.prev = 106),
+                                (e.t1 = e.catch(100)),
+                                (ct = "/_error");
+                            case 109:
                               return (
-                                (e.next = 108),
-                                this.getRouteInfo(at, at, I, a, U, {
-                                  shallow: !1
-                                })
+                                (e.next = 111),
+                                this.getRouteInfo(
+                                  ct,
+                                  ct,
+                                  D,
+                                  a,
+                                  W,
+                                  { shallow: !1 },
+                                  !1
+                                )
                               );
-                            case 108:
-                              J = e.sent;
-                            case 109:
+                            case 111:
+                              Z = e.sent;
+                            case 112:
                               return (
-                                t.events.emit("beforeHistoryChange", a, y),
+                                t.events.emit("beforeHistoryChange", a, w),
                                 this.changeState(r, o, a, i),
-                                (it = i.shallow && this.route === N),
                                 i._h &&
-                                  "/_error" === O &&
+                                  "/_error" === I &&
                                   500 ===
-                                    (null == (X = self.__NEXT_DATA__.props) ||
-                                    null == (z = X.pageProps)
+                                    (null == (z = self.__NEXT_DATA__.props) ||
+                                    null == (J = z.pageProps)
                                       ? void 0
-                                      : z.statusCode) &&
-                                  null != Q &&
-                                  Q.pageProps &&
-                                  (Q.pageProps.statusCode = 500),
-                                (e.next = 116),
+                                      : J.statusCode) &&
+                                  null != et &&
+                                  et.pageProps &&
+                                  (et.pageProps.statusCode = 500),
+                                (e.next = 118),
                                 this.set(
-                                  N,
-                                  O,
+                                  U,
                                   I,
-                                  w,
-                                  J,
-                                  u || (it || !i.scroll ? null : { x: 0, y: 0 })
+                                  D,
+                                  b,
+                                  Z,
+                                  u || (Q || !i.scroll ? null : { x: 0, y: 0 })
                                 ).catch(function(t) {
                                   if (!t.cancelled) throw t;
-                                  Y = Y || t;
+                                  tt = tt || t;
                                 })
                               );
-                            case 116:
-                              if (!Y) {
-                                e.next = 119;
+                            case 118:
+                              if (!tt) {
+                                e.next = 121;
                                 break;
                               }
-                              throw (t.events.emit("routeChangeError", Y, w, y),
-                              Y);
-                            case 119:
+                              throw (t.events.emit(
+                                "routeChangeError",
+                                tt,
+                                b,
+                                w
+                              ),
+                              tt);
+                            case 121:
                               return (
-                                t.events.emit("routeChangeComplete", a, y),
+                                t.events.emit("routeChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
-                            case 124:
+                            case 126:
                               if (
-                                ((e.prev = 124),
+                                ((e.prev = 126),
                                 (e.t2 = e.catch(79)),
                                 !e.t2.cancelled)
                               ) {
-                                e.next = 128;
+                                e.next = 130;
                                 break;
                               }
                               return e.abrupt("return", !1);
-                            case 128:
+                            case 130:
                               throw e.t2;
-                            case 129:
+                            case 131:
                             case "end":
                               return e.stop();
                           }
@@ -1408,13 +1426,13 @@
                       this,
                       [
                         [36, 46],
-                        [79, 124],
-                        [97, 103]
+                        [79, 126],
+                        [100, 106]
                       ]
                     );
                   })
                 );
-                return function(t, r, n, o, a) {
+                return function(t, r, n, o, a, i) {
                   return e.apply(this, arguments);
                 };
               })()
@@ -1554,16 +1572,16 @@
               key: "getRouteInfo",
               value: (function() {
                 var t = o(
-                  n.mark(function t(e, r, o, a, i, u) {
-                    var s,
-                      c,
+                  n.mark(function t(e, r, o, a, i, u, s) {
+                    var c,
                       l,
                       f,
                       p,
                       d,
                       v,
                       y,
-                      m = this;
+                      m,
+                      g = this;
                     return n.wrap(
                       function(t) {
                         for (;;)
@@ -1571,19 +1589,19 @@
                             case 0:
                               if (
                                 ((t.prev = 0),
-                                (s = this.components[e]),
-                                !u.shallow || !s || this.route !== e)
+                                (c = this.components[e]),
+                                !s || !c)
                               ) {
                                 t.next = 4;
                                 break;
                               }
-                              return t.abrupt("return", s);
+                              return t.abrupt("return", c);
                             case 4:
-                              if (!(c = s && "initial" in s ? void 0 : s)) {
+                              if (!(l = c && "initial" in c ? void 0 : c)) {
                                 t.next = 9;
                                 break;
                               }
-                              (t.t0 = c), (t.next = 12);
+                              (t.t0 = l), (t.next = 12);
                               break;
                             case 9:
                               return (
@@ -1600,31 +1618,31 @@
                             case 11:
                               t.t0 = t.sent;
                             case 12:
-                              (l = t.t0),
-                                (f = l.Component),
-                                (p = l.__N_SSG),
-                                (d = l.__N_SSP),
+                              (f = t.t0),
+                                (p = f.Component),
+                                (d = f.__N_SSG),
+                                (v = f.__N_SSP),
                                 (t.next = 18);
                               break;
                             case 18:
                               return (
-                                (p || d) &&
-                                  (v = this.pageLoader.getDataHref(
+                                (d || v) &&
+                                  (y = this.pageLoader.getDataHref(
                                     (0, h.formatWithValidation)({
                                       pathname: r,
                                       query: o
                                     }),
                                     i,
-                                    p,
+                                    d,
                                     this.locale
                                   )),
                                 (t.next = 21),
                                 this._getData(function() {
-                                  return p
-                                    ? m._getStaticData(v)
-                                    : d
-                                    ? m._getServerData(v)
-                                    : m.getInitialProps(f, {
+                                  return d
+                                    ? g._getStaticData(y)
+                                    : v
+                                    ? g._getServerData(y)
+                                    : g.getInitialProps(p, {
                                         pathname: r,
                                         query: o,
                                         asPath: a
@@ -1633,10 +1651,10 @@
                               );
                             case 21:
                               return (
-                                (y = t.sent),
-                                (l.props = y),
-                                (this.components[e] = l),
-                                t.abrupt("return", l)
+                                (m = t.sent),
+                                (f.props = m),
+                                (this.components[e] = f),
+                                t.abrupt("return", f)
                               );
                             case 27:
                               return (
@@ -1658,7 +1676,7 @@
                     );
                   })
                 );
-                return function(e, r, n, o, a, i) {
+                return function(e, r, n, o, a, i, u) {
                   return t.apply(this, arguments);
                 };
               })()
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+        "buildId": "zm3eI0tSER1JEtmL8kbht",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       as="script"
     />
     <link
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+        "buildId": "zm3eI0tSER1JEtmL8kbht",
         "isFallback": false,
         "gip": true
       }
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       async=""
     ></script>
     <script
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "JpG_DPHgeJZh3U6OLBqIL",
+        "buildId": "zm3eI0tSER1JEtmL8kbht",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.f9433c18da62593c92d1.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_buildManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/JpG_DPHgeJZh3U6OLBqIL/_ssgManifest.js"
+      src="/_next/static/zm3eI0tSER1JEtmL8kbht/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: 7c9d4f5063050f0dc6cb1d156287c64a0c1cf565

ijjk avatar Feb 27 '21 12:02 ijjk

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 12.4s 12.4s ⚠️ +62ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.2 kB
Page Load Tests Overall increase ✓
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.318 2.356 ⚠️ +0.04
/ avg req/sec 1078.72 1061 ⚠️ -17.72
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.63 1.577 -0.05
/error-in-render avg req/sec 1533.32 1585.23 +51.91
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..e7a0.js gzip 13.4 kB 13.4 kB ⚠️ +9 B
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 59.7 kB 59.7 kB ⚠️ +9 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 613 B 613 B
link.html gzip 620 B 620 B
withRouter.html gzip 607 B 608 B ⚠️ +1 B
Overall change 1.84 kB 1.84 kB ⚠️ +1 B

Diffs

Diff for 677f882d2ed8..5ec6837e3.js
@@ -1703,7 +1703,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 shallow: options.shallow && _this._shallow,
                 locale: options.locale || _this.defaultLocale
               }),
-              forcedScroll
+              forcedScroll,
+              true
             );
           }; // represents the current component key
 
@@ -1860,7 +1861,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   url,
                   as,
                   options,
-                  forcedScroll
+                  forcedScroll,
+                  isPopState
                 ) {
                   var _options$scroll,
                     localeChange,
@@ -1893,6 +1895,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     missingParams,
                     _self$__NEXT_DATA__$p,
                     _self$__NEXT_DATA__$p2,
+                    isSamePageURLChange,
+                    isPopStateShallowRoute,
+                    isValidShallowRoute,
                     routeInfo,
                     _routeInfo,
                     error,
@@ -1905,8 +1910,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     newUrl,
                     newAs,
                     notFoundRoute,
-                    appComp,
-                    isValidShallowRoute;
+                    appComp;
 
                   return _regeneratorRuntime.wrap(
                     function _callee$(_context) {
@@ -2257,17 +2261,26 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               routeProps
                             );
                             _context.prev = 79;
-                            _context.next = 82;
+                            isSamePageURLChange = this.route === route;
+                            isPopStateShallowRoute =
+                              isPopState &&
+                              !!false &&
+                              !(0, _isDynamic.isDynamicRoute)(route);
+                            isValidShallowRoute =
+                              (options.shallow && isSamePageURLChange) ||
+                              isPopStateShallowRoute;
+                            _context.next = 85;
                             return this.getRouteInfo(
                               route,
                               pathname,
                               query,
                               as,
                               resolvedAs,
-                              routeProps
+                              routeProps,
+                              isValidShallowRoute
                             );
 
-                          case 82:
+                          case 85:
                             routeInfo = _context.sent;
                             (_routeInfo = routeInfo),
                               (error = _routeInfo.error),
@@ -2276,14 +2289,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               (__N_SSP = _routeInfo.__N_SSP); // handle redirect on client-transition
 
                             if (!((__N_SSG || __N_SSP) && props)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
                             if (
                               !(props.pageProps && props.pageProps.__N_REDIRECT)
                             ) {
-                              _context.next = 95;
+                              _context.next = 98;
                               break;
                             }
 
@@ -2292,7 +2305,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             // it's not
 
                             if (!destination.startsWith("/")) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2301,7 +2314,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             resolveDynamicRoute(parsedHref, pages, false);
 
                             if (!pages.includes(parsedHref.pathname)) {
-                              _context.next = 93;
+                              _context.next = 96;
                               break;
                             }
 
@@ -2317,37 +2330,37 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               this.change(method, newUrl, newAs, options)
                             );
 
-                          case 93:
+                          case 96:
                             window.location.href = destination;
                             return _context.abrupt(
                               "return",
                               new Promise(function() {})
                             );
 
-                          case 95:
+                          case 98:
                             this.isPreview = !!props.__N_PREVIEW; // handle SSG data 404
 
                             if (!(props.notFound === SSG_DATA_NOT_FOUND)) {
-                              _context.next = 109;
+                              _context.next = 112;
                               break;
                             }
 
-                            _context.prev = 97;
-                            _context.next = 100;
+                            _context.prev = 100;
+                            _context.next = 103;
                             return this.fetchComponent("/404");
 
-                          case 100:
+                          case 103:
                             notFoundRoute = "/404";
-                            _context.next = 106;
+                            _context.next = 109;
                             break;
 
-                          case 103:
-                            _context.prev = 103;
-                            _context.t1 = _context["catch"](97);
+                          case 106:
+                            _context.prev = 106;
+                            _context.t1 = _context["catch"](100);
                             notFoundRoute = "/_error";
 
-                          case 106:
-                            _context.next = 108;
+                          case 109:
+                            _context.next = 111;
                             return this.getRouteInfo(
                               notFoundRoute,
                               notFoundRoute,
@@ -2356,13 +2369,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               resolvedAs,
                               {
                                 shallow: false
-                              }
+                              },
+                              false
                             );
 
-                          case 108:
+                          case 111:
                             routeInfo = _context.sent;
 
-                          case 109:
+                          case 112:
                             Router.events.emit(
                               "beforeHistoryChange",
                               as,
@@ -2371,10 +2385,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             this.changeState(method, url, as, options);
 
                             if (false) {
-                            } // shallow routing is only allowed for same page URL changes.
-
-                            isValidShallowRoute =
-                              options.shallow && this.route === route;
+                            }
 
                             if (
                               options._h &&
@@ -2394,7 +2405,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               props.pageProps.statusCode = 500;
                             }
 
-                            _context.next = 116;
+                            _context.next = 118;
                             return this.set(
                               route,
                               pathname,
@@ -2413,9 +2424,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                               else throw e;
                             });
 
-                          case 116:
+                          case 118:
                             if (!error) {
-                              _context.next = 119;
+                              _context.next = 121;
                               break;
                             }
 
@@ -2427,7 +2438,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             throw error;
 
-                          case 119:
+                          case 121:
                             if (false) {
                             }
 
@@ -2438,21 +2449,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             );
                             return _context.abrupt("return", true);
 
-                          case 124:
-                            _context.prev = 124;
+                          case 126:
+                            _context.prev = 126;
                             _context.t2 = _context["catch"](79);
 
                             if (!_context.t2.cancelled) {
-                              _context.next = 128;
+                              _context.next = 130;
                               break;
                             }
 
                             return _context.abrupt("return", false);
 
-                          case 128:
+                          case 130:
                             throw _context.t2;
 
-                          case 129:
+                          case 131:
                           case "end":
                             return _context.stop();
                         }
@@ -2462,14 +2473,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     this,
                     [
                       [36, 46],
-                      [79, 124],
-                      [97, 103]
+                      [79, 126],
+                      [100, 106]
                     ]
                   );
                 })
               );
 
-              function change(_x, _x2, _x3, _x4, _x5) {
+              function change(_x, _x2, _x3, _x4, _x5, _x6) {
                 return _change.apply(this, arguments);
               }
 
@@ -2654,7 +2665,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function handleRouteInfoError(_x6, _x7, _x8, _x9, _x10, _x11) {
+              function handleRouteInfoError(_x7, _x8, _x9, _x10, _x11, _x12) {
                 return _handleRouteInfoError.apply(this, arguments);
               }
 
@@ -2671,7 +2682,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   query,
                   as,
                   resolvedAs,
-                  routeProps
+                  routeProps,
+                  isValidShallowRoute
                 ) {
                   var _this2 = this;
 
@@ -2694,13 +2706,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                             _context3.prev = 0;
                             existingRouteInfo = this.components[route];
 
-                            if (
-                              !(
-                                routeProps.shallow &&
-                                existingRouteInfo &&
-                                this.route === route
-                              )
-                            ) {
+                            if (!(isValidShallowRoute && existingRouteInfo)) {
                               _context3.next = 4;
                               break;
                             }
@@ -2839,7 +2845,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function getRouteInfo(_x12, _x13, _x14, _x15, _x16, _x17) {
+              function getRouteInfo(_x13, _x14, _x15, _x16, _x17, _x18, _x19) {
                 return _getRouteInfo.apply(this, arguments);
               }
 
@@ -3085,7 +3091,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function prefetch(_x18) {
+              function prefetch(_x20) {
                 return _prefetch.apply(this, arguments);
               }
 
@@ -3150,7 +3156,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 })
               );
 
-              function fetchComponent(_x19) {
+              function fetchComponent(_x21) {
                 return _fetchComponent.apply(this, arguments);
               }
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       async=""
     ></script>
     <script
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       as="script"
     />
     <link
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       async=""
     ></script>
     <script
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       as="script"
     />
     <link
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.42120b530b65ec6837e3.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.488bb8e2543eb04e032c.js"
       async=""
     ></script>
     <script

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 14.2s 13.9s -247ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.2 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
677f882d2ed8..e7a0.js gzip 13.4 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 6.65 kB 6.65 kB
webpack-HASH.js gzip 751 B 751 B
677f882d2ed8..0b1c.js gzip N/A 13.4 kB N/A
Overall change 59.7 kB 59.7 kB ⚠️ +9 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-2a09aa2..4a98.js gzip 1.28 kB 1.28 kB
_error-8b758..aef6.js gzip 3.46 kB 3.46 kB
amp-e3e9bc99..932c.js gzip 536 B 536 B
hooks-5023ef..3670.js gzip 888 B 888 B
index-3a2b03..c677.js gzip 227 B 227 B
link-177412b..043e.js gzip 1.67 kB 1.67 kB
routerDirect..1a66.js gzip 303 B 303 B
withRouter-9..1b7d.js gzip 302 B 302 B
Overall change 8.66 kB 8.66 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 347 B 347 B
Overall change 347 B 347 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_error.js 1.01 MB 1.01 MB
404.html 2.67 kB 2.67 kB
500.html 2.65 kB 2.65 kB
amp.amp.html 10.4 kB 10.4 kB
amp.html 1.86 kB 1.86 kB
hooks.html 1.92 kB 1.92 kB
index.js 1.01 MB 1.01 MB
link.js 1.06 MB 1.06 MB ⚠️ +163 B
routerDirect.js 1.06 MB 1.06 MB ⚠️ +163 B
withRouter.js 1.06 MB 1.06 MB ⚠️ +163 B
Overall change 5.21 MB 5.21 MB ⚠️ +489 B

Webpack 5 Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
buildDuration 14.3s 14.1s -149ms
nodeModulesSize 42.7 MB 42.7 MB ⚠️ +1.2 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
/ failed reqs 0 0
/ total time (seconds) 2.176 2.183 ⚠️ +0.01
/ avg req/sec 1149.04 1145.16 ⚠️ -3.88
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.53 1.548 ⚠️ +0.02
/error-in-render avg req/sec 1633.95 1614.8 ⚠️ -19.15
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
597-74632e79..1d47.js gzip 13.3 kB 13.3 kB ⚠️ +8 B
framework.HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 6.6 kB 6.6 kB
webpack-HASH.js gzip 954 B 954 B
Overall change 60.1 kB 60.1 kB ⚠️ +8 B
Legacy Client Bundles (polyfills)
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_app-aedc815..1421.js gzip 1.26 kB 1.26 kB
_error-71ec2..1a96.js gzip 3.38 kB 3.38 kB
amp-33a09cb0..6745.js gzip 536 B 536 B
hooks-4e968a..f870.js gzip 902 B 902 B
index-5c6845..f75c.js gzip 230 B 230 B
link-99f0c6c..b84a.js gzip 1.65 kB 1.65 kB
routerDirect..bb56.js gzip 306 B 306 B
withRouter-7..2133.js gzip 302 B 302 B
Overall change 8.57 kB 8.57 kB
Client Build Manifests
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
_buildManifest.js gzip 326 B 326 B
Overall change 326 B 326 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary okmttdhr/next.js story/popstate-shallow-route Change
index.html gzip 586 B 588 B ⚠️ +2 B
link.html gzip 594 B 594 B
withRouter.html gzip 581 B 583 B ⚠️ +2 B
Overall change 1.76 kB 1.76 kB ⚠️ +4 B

Diffs

Diff for 677f882d2ed8..eaa79e7a0.js
@@ -971,7 +971,8 @@
                         shallow: o.shallow && i._shallow,
                         locale: o.locale || i.defaultLocale
                       }),
-                      undefined
+                      undefined,
+                      !0
                     );
                 }
               } else {
@@ -1068,9 +1069,8 @@
               key: "change",
               value: (function() {
                 var e = o(
-                  n.mark(function e(r, o, a, i, u) {
-                    var l,
-                      f,
+                  n.mark(function e(r, o, a, i, u, l) {
+                    var f,
                       v,
                       y,
                       w,
@@ -1103,7 +1103,10 @@
                       nt,
                       ot,
                       at,
-                      it;
+                      it,
+                      ut,
+                      st,
+                      ct;
                     return n.wrap(
                       function(e) {
                         for (;;)
@@ -1119,20 +1122,20 @@
                               );
                             case 3:
                               i._h && (this.isReady = !0),
-                                (i.scroll = !(null != (l = i.scroll) && !l)),
-                                (f = i.locale !== this.locale),
+                                (i.scroll = !(null != (f = i.scroll) && !f)),
+                                (v = i.locale !== this.locale),
                                 (e.next = 18);
                               break;
                             case 18:
                               if (
                                 (i._h || (this.isSsr = !1),
                                 h.ST && performance.mark("routeChange"),
-                                (v = i.shallow),
-                                (y = { shallow: void 0 !== v && v }),
+                                (y = i.shallow),
+                                (w = { shallow: void 0 !== y && y }),
                                 this._inFlightRoute &&
                                   this.abortComponentLoad(
                                     this._inFlightRoute,
-                                    y
+                                    w
                                   ),
                                 (a = S(
                                   _(
@@ -1141,39 +1144,39 @@
                                     this.defaultLocale
                                   )
                                 )),
-                                (w = x(k(a) ? E(a) : a, this.locale)),
+                                (b = x(k(a) ? E(a) : a, this.locale)),
                                 (this._inFlightRoute = a),
-                                i._h || !this.onlyAHashChange(w))
+                                i._h || !this.onlyAHashChange(b))
                               ) {
                                 e.next = 34;
                                 break;
                               }
                               return (
-                                (this.asPath = w),
-                                t.events.emit("hashChangeStart", a, y),
+                                (this.asPath = b),
+                                t.events.emit("hashChangeStart", a, w),
                                 this.changeState(r, o, a, i),
-                                this.scrollToHash(w),
+                                this.scrollToHash(b),
                                 this.notify(this.components[this.route], null),
-                                t.events.emit("hashChangeComplete", a, y),
+                                t.events.emit("hashChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
                             case 34:
                               return (
-                                (b = (0, d.parseRelativeUrl)(o)),
-                                (O = (P = b).pathname),
-                                (I = P.query),
+                                (P = (0, d.parseRelativeUrl)(o)),
+                                (I = (O = P).pathname),
+                                (D = O.query),
                                 (e.prev = 36),
                                 (e.next = 39),
                                 this.pageLoader.getPageList()
                               );
                             case 39:
                               return (
-                                (D = e.sent),
+                                (M = e.sent),
                                 (e.next = 42),
                                 (0, c.getClientBuildManifest)()
                               );
                             case 42:
-                              (M = e.sent), M.__rewrites, (e.next = 50);
+                              (N = e.sent), N.__rewrites, (e.next = 50);
                               break;
                             case 46:
                               return (
@@ -1184,15 +1187,15 @@
                               );
                             case 50:
                               if (
-                                ((b = j(b, D)).pathname !== O &&
-                                  ((O = b.pathname),
-                                  (o = (0, h.formatWithValidation)(b))),
-                                (O = O
-                                  ? (0, s.removePathTrailingSlash)(E(O))
-                                  : O),
-                                this.urlIsNew(w) || f || (r = "replaceState"),
-                                (N = (0, s.removePathTrailingSlash)(O)),
-                                (U = a),
+                                ((P = j(P, M)).pathname !== I &&
+                                  ((I = P.pathname),
+                                  (o = (0, h.formatWithValidation)(P))),
+                                (I = I
+                                  ? (0, s.removePathTrailingSlash)(E(I))
+                                  : I),
+                                this.urlIsNew(b) || v || (r = "replaceState"),
+                                (U = (0, s.removePathTrailingSlash)(I)),
+                                (W = a),
                                 R(a))
                               ) {
                                 e.next = 62;
@@ -1207,29 +1210,29 @@
                               );
                             case 62:
                               if (
-                                ((U = x(E(U), this.locale)),
-                                !(0, p.isDynamicRoute)(N))
+                                ((W = x(E(W), this.locale)),
+                                !(0, p.isDynamicRoute)(U))
                               ) {
                                 e.next = 78;
                                 break;
                               }
                               if (
-                                ((W = (0, d.parseRelativeUrl)(U)),
-                                (q = W.pathname),
-                                (F = (0, g.getRouteRegex)(N)),
-                                (G = (0, m.getRouteMatcher)(F)(q)),
-                                (V = (B = N === q) ? L(N, q, I) : {}),
-                                G && (!B || V.result))
+                                ((q = (0, d.parseRelativeUrl)(W)),
+                                (F = q.pathname),
+                                (G = (0, g.getRouteRegex)(U)),
+                                (B = (0, m.getRouteMatcher)(G)(F)),
+                                (H = (V = U === F) ? L(U, F, D) : {}),
+                                B && (!V || H.result))
                               ) {
                                 e.next = 77;
                                 break;
                               }
                               if (
                                 !(
-                                  (H = Object.keys(F.groups).filter(function(
+                                  (X = Object.keys(G.groups).filter(function(
                                     t
                                   ) {
-                                    return !I[t];
+                                    return !D[t];
                                   })).length > 0
                                 )
                               ) {
@@ -1237,24 +1240,24 @@
                                 break;
                               }
                               throw new Error(
-                                (B
+                                (V
                                   ? "The provided `href` ("
                                       .concat(
                                         o,
                                         ") value is missing query values ("
                                       )
                                       .concat(
-                                        H.join(", "),
+                                        X.join(", "),
                                         ") to be interpolated properly. "
                                       )
                                   : "The provided `as` value ("
                                       .concat(
-                                        q,
+                                        F,
                                         ") is incompatible with the `href` value ("
                                       )
-                                      .concat(N, "). ")) +
+                                      .concat(U, "). ")) +
                                   "Read more: https://err.sh/vercel/next.js/".concat(
-                                    B
+                                    V
                                       ? "href-interpolation-failed"
                                       : "incompatible-href-as"
                                   )
@@ -1263,143 +1266,158 @@
                               e.next = 78;
                               break;
                             case 77:
-                              B
+                              V
                                 ? (a = (0, h.formatWithValidation)(
-                                    Object.assign({}, W, {
-                                      pathname: V.result,
-                                      query: C(I, V.params)
+                                    Object.assign({}, q, {
+                                      pathname: H.result,
+                                      query: C(D, H.params)
                                     })
                                   ))
-                                : Object.assign(I, G);
+                                : Object.assign(D, B);
                             case 78:
                               return (
-                                t.events.emit("routeChangeStart", a, y),
+                                t.events.emit("routeChangeStart", a, w),
                                 (e.prev = 79),
-                                (e.next = 82),
-                                this.getRouteInfo(N, O, I, a, U, y)
+                                ($ = this.route === U),
+                                (Y = l && !1),
+                                (Q = (i.shallow && $) || Y),
+                                (e.next = 85),
+                                this.getRouteInfo(U, I, D, a, W, w, Q)
                               );
-                            case 82:
+                            case 85:
                               if (
-                                ((J = e.sent),
-                                (Y = ($ = J).error),
-                                (Q = $.props),
-                                (Z = $.__N_SSG),
-                                (K = $.__N_SSP),
-                                (!Z && !K) || !Q)
+                                ((Z = e.sent),
+                                (tt = (K = Z).error),
+                                (et = K.props),
+                                (rt = K.__N_SSG),
+                                (nt = K.__N_SSP),
+                                (!rt && !nt) || !et)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
-                              if (!Q.pageProps || !Q.pageProps.__N_REDIRECT) {
-                                e.next = 95;
+                              if (!et.pageProps || !et.pageProps.__N_REDIRECT) {
+                                e.next = 98;
                                 break;
                               }
                               if (
-                                !(tt = Q.pageProps.__N_REDIRECT).startsWith("/")
+                                !(ot = et.pageProps.__N_REDIRECT).startsWith(
+                                  "/"
+                                )
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               if (
-                                (j((et = (0, d.parseRelativeUrl)(tt)), D, !1),
-                                !D.includes(et.pathname))
+                                (j((at = (0, d.parseRelativeUrl)(ot)), M, !1),
+                                !M.includes(at.pathname))
                               ) {
-                                e.next = 93;
+                                e.next = 96;
                                 break;
                               }
                               return (
-                                (rt = T(this, tt, tt)),
-                                (nt = rt.url),
-                                (ot = rt.as),
-                                e.abrupt("return", this.change(r, nt, ot, i))
+                                (it = T(this, ot, ot)),
+                                (ut = it.url),
+                                (st = it.as),
+                                e.abrupt("return", this.change(r, ut, st, i))
                               );
-                            case 93:
+                            case 96:
                               return (
-                                (window.location.href = tt),
+                                (window.location.href = ot),
                                 e.abrupt("return", new Promise(function() {}))
                               );
-                            case 95:
+                            case 98:
                               if (
-                                ((this.isPreview = !!Q.__N_PREVIEW),
-                                Q.notFound !== A)
+                                ((this.isPreview = !!et.__N_PREVIEW),
+                                et.notFound !== A)
                               ) {
-                                e.next = 109;
+                                e.next = 112;
                                 break;
                               }
                               return (
-                                (e.prev = 97),
-                                (e.next = 100),
+                                (e.prev = 100),
+                                (e.next = 103),
                                 this.fetchComponent("/404")
                               );
-                            case 100:
-                              (at = "/404"), (e.next = 106);
-                              break;
                             case 103:
-                              (e.prev = 103),
-                                (e.t1 = e.catch(97)),
-                                (at = "/_error");
+                              (ct = "/404"), (e.next = 109);
+                              break;
                             case 106:
+                              (e.prev = 106),
+                                (e.t1 = e.catch(100)),
+                                (ct = "/_error");
+                            case 109:
                               return (
-                                (e.next = 108),
-                                this.getRouteInfo(at, at, I, a, U, {
-                                  shallow: !1
-                                })
+                                (e.next = 111),
+                                this.getRouteInfo(
+                                  ct,
+                                  ct,
+                                  D,
+                                  a,
+                                  W,
+                                  { shallow: !1 },
+                                  !1
+                                )
                               );
-                            case 108:
-                              J = e.sent;
-                            case 109:
+                            case 111:
+                              Z = e.sent;
+                            case 112:
                               return (
-                                t.events.emit("beforeHistoryChange", a, y),
+                                t.events.emit("beforeHistoryChange", a, w),
                                 this.changeState(r, o, a, i),
-                                (it = i.shallow && this.route === N),
                                 i._h &&
-                                  "/_error" === O &&
+                                  "/_error" === I &&
                                   500 ===
-                                    (null == (X = self.__NEXT_DATA__.props) ||
-                                    null == (z = X.pageProps)
+                                    (null == (z = self.__NEXT_DATA__.props) ||
+                                    null == (J = z.pageProps)
                                       ? void 0
-                                      : z.statusCode) &&
-                                  null != Q &&
-                                  Q.pageProps &&
-                                  (Q.pageProps.statusCode = 500),
-                                (e.next = 116),
+                                      : J.statusCode) &&
+                                  null != et &&
+                                  et.pageProps &&
+                                  (et.pageProps.statusCode = 500),
+                                (e.next = 118),
                                 this.set(
-                                  N,
-                                  O,
+                                  U,
                                   I,
-                                  w,
-                                  J,
-                                  u || (it || !i.scroll ? null : { x: 0, y: 0 })
+                                  D,
+                                  b,
+                                  Z,
+                                  u || (Q || !i.scroll ? null : { x: 0, y: 0 })
                                 ).catch(function(t) {
                                   if (!t.cancelled) throw t;
-                                  Y = Y || t;
+                                  tt = tt || t;
                                 })
                               );
-                            case 116:
-                              if (!Y) {
-                                e.next = 119;
+                            case 118:
+                              if (!tt) {
+                                e.next = 121;
                                 break;
                               }
-                              throw (t.events.emit("routeChangeError", Y, w, y),
-                              Y);
-                            case 119:
+                              throw (t.events.emit(
+                                "routeChangeError",
+                                tt,
+                                b,
+                                w
+                              ),
+                              tt);
+                            case 121:
                               return (
-                                t.events.emit("routeChangeComplete", a, y),
+                                t.events.emit("routeChangeComplete", a, w),
                                 e.abrupt("return", !0)
                               );
-                            case 124:
+                            case 126:
                               if (
-                                ((e.prev = 124),
+                                ((e.prev = 126),
                                 (e.t2 = e.catch(79)),
                                 !e.t2.cancelled)
                               ) {
-                                e.next = 128;
+                                e.next = 130;
                                 break;
                               }
                               return e.abrupt("return", !1);
-                            case 128:
+                            case 130:
                               throw e.t2;
-                            case 129:
+                            case 131:
                             case "end":
                               return e.stop();
                           }
@@ -1408,13 +1426,13 @@
                       this,
                       [
                         [36, 46],
-                        [79, 124],
-                        [97, 103]
+                        [79, 126],
+                        [100, 106]
                       ]
                     );
                   })
                 );
-                return function(t, r, n, o, a) {
+                return function(t, r, n, o, a, i) {
                   return e.apply(this, arguments);
                 };
               })()
@@ -1554,16 +1572,16 @@
               key: "getRouteInfo",
               value: (function() {
                 var t = o(
-                  n.mark(function t(e, r, o, a, i, u) {
-                    var s,
-                      c,
+                  n.mark(function t(e, r, o, a, i, u, s) {
+                    var c,
                       l,
                       f,
                       p,
                       d,
                       v,
                       y,
-                      m = this;
+                      m,
+                      g = this;
                     return n.wrap(
                       function(t) {
                         for (;;)
@@ -1571,19 +1589,19 @@
                             case 0:
                               if (
                                 ((t.prev = 0),
-                                (s = this.components[e]),
-                                !u.shallow || !s || this.route !== e)
+                                (c = this.components[e]),
+                                !s || !c)
                               ) {
                                 t.next = 4;
                                 break;
                               }
-                              return t.abrupt("return", s);
+                              return t.abrupt("return", c);
                             case 4:
-                              if (!(c = s && "initial" in s ? void 0 : s)) {
+                              if (!(l = c && "initial" in c ? void 0 : c)) {
                                 t.next = 9;
                                 break;
                               }
-                              (t.t0 = c), (t.next = 12);
+                              (t.t0 = l), (t.next = 12);
                               break;
                             case 9:
                               return (
@@ -1600,31 +1618,31 @@
                             case 11:
                               t.t0 = t.sent;
                             case 12:
-                              (l = t.t0),
-                                (f = l.Component),
-                                (p = l.__N_SSG),
-                                (d = l.__N_SSP),
+                              (f = t.t0),
+                                (p = f.Component),
+                                (d = f.__N_SSG),
+                                (v = f.__N_SSP),
                                 (t.next = 18);
                               break;
                             case 18:
                               return (
-                                (p || d) &&
-                                  (v = this.pageLoader.getDataHref(
+                                (d || v) &&
+                                  (y = this.pageLoader.getDataHref(
                                     (0, h.formatWithValidation)({
                                       pathname: r,
                                       query: o
                                     }),
                                     i,
-                                    p,
+                                    d,
                                     this.locale
                                   )),
                                 (t.next = 21),
                                 this._getData(function() {
-                                  return p
-                                    ? m._getStaticData(v)
-                                    : d
-                                    ? m._getServerData(v)
-                                    : m.getInitialProps(f, {
+                                  return d
+                                    ? g._getStaticData(y)
+                                    : v
+                                    ? g._getServerData(y)
+                                    : g.getInitialProps(p, {
                                         pathname: r,
                                         query: o,
                                         asPath: a
@@ -1633,10 +1651,10 @@
                               );
                             case 21:
                               return (
-                                (y = t.sent),
-                                (l.props = y),
-                                (this.components[e] = l),
-                                t.abrupt("return", l)
+                                (m = t.sent),
+                                (f.props = m),
+                                (this.components[e] = f),
+                                t.abrupt("return", f)
                               );
                             case 27:
                               return (
@@ -1658,7 +1676,7 @@
                     );
                   })
                 );
-                return function(e, r, n, o, a, i) {
+                return function(e, r, n, o, a, i, u) {
                   return t.apply(this, arguments);
                 };
               })()
Diff for index.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/",
         "query": {},
-        "buildId": "tvzZyHx7it2FkzkJtqHG5",
+        "buildId": "GvrL00caBNKIRGmYq3BcV",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for link.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       as="script"
     />
     <link
@@ -48,7 +48,7 @@
         "props": { "pageProps": {} },
         "page": "/link",
         "query": {},
-        "buildId": "tvzZyHx7it2FkzkJtqHG5",
+        "buildId": "GvrL00caBNKIRGmYq3BcV",
         "isFallback": false,
         "gip": true
       }
@@ -70,7 +70,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       async=""
     ></script>
     <script
@@ -82,11 +82,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
       async=""
     ></script>
   </body>
Diff for withRouter.html
@@ -22,7 +22,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       as="script"
     />
     <link
@@ -43,7 +43,7 @@
         "props": { "pageProps": {} },
         "page": "/withRouter",
         "query": {},
-        "buildId": "tvzZyHx7it2FkzkJtqHG5",
+        "buildId": "GvrL00caBNKIRGmYq3BcV",
         "isFallback": false,
         "gip": true
       }
@@ -65,7 +65,7 @@
       async=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.45a1f5b1723eaa79e7a0.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.2a8992c895aa43790b1c.js"
       async=""
     ></script>
     <script
@@ -77,11 +77,11 @@
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_buildManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_buildManifest.js"
       async=""
     ></script>
     <script
-      src="/_next/static/tvzZyHx7it2FkzkJtqHG5/_ssgManifest.js"
+      src="/_next/static/GvrL00caBNKIRGmYq3BcV/_ssgManifest.js"
       async=""
     ></script>
   </body>
Commit: b03409fdf9dd425c6ecdd21709b1ef8d1856b128

ijjk avatar Mar 02 '21 13:03 ijjk