Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use builtins for React transform #10207

Merged
merged 9 commits into from Jan 22, 2020

Conversation

timneutkens
Copy link
Member

@timneutkens timneutkens commented Jan 22, 2020

This disables async-to-generator on the source files as it's included in the next.js build process already.

Also optimizes the output of JSX spread to Object.assign as object spread results in an extra helper.

@Timer Timer added this to the 9.2.1 milestone Jan 22, 2020
@ijjk
Copy link
Member

ijjk commented Jan 22, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
buildDuration 13s 13.2s ⚠️ +121ms
nodeModulesSize 48.9 MB 48.8 MB -2.09 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.js gzip 5.12 kB 5.1 kB -16 B
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d6b9.js gzip 16.3 kB 16.1 kB -172 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 69.8 kB -188 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.module.js gzip 4.15 kB 4.1 kB -52 B
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15 kB -133 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.7 kB 64.5 kB -185 B
Legacy Client Bundles (polyfills)
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.js gzip 1.34 kB 1.15 kB -190 B
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.68 kB -190 B
Client Pages Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.module.js gzip 769 B 576 B -193 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.42 kB 7.22 kB -193 B
Client Build Manifests
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
index.html gzip 1.02 kB 1.02 kB -3 B
link.html gzip 1.03 kB 1.03 kB -2 B
withRouter.html gzip 1.02 kB 1.02 kB -2 B
Overall change 3.07 kB 3.07 kB -7 B

Diffs

Diff for _app.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [5],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ '+plK': /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('ApPD')
       module.exports = __webpack_require__('WEpk').Object.getPrototypeOf
@@ -119,6 +51,8 @@
     /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _classCallCheck = __webpack_require__('/HRN')
 
       var _createClass = __webpack_require__('WaGi')
@@ -138,12 +72,6 @@
       exports.createUrl = createUrl
       exports['default'] = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _utils = __webpack_require__('g/15')
@@ -154,38 +82,32 @@
        * This allows for keeping state between navigation, custom error handling, injecting additional data.
        */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments)
-      }
+      function appGetInitialProps(_ref) {
+        var Component, ctx, pageProps
+        return _regeneratorRuntime.async(function appGetInitialProps$(
+          _context
+        ) {
+          while (1) {
+            switch ((_context.prev = _context.next)) {
+              case 0:
+                ;(Component = _ref.Component), (ctx = _ref.ctx)
+                _context.next = 3
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(Component, ctx)
+                )
 
-      function _appGetInitialProps() {
-        _appGetInitialProps = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    ;(Component = _ref.Component), (ctx = _ref.ctx)
-                    _context.next = 3
-                    return (0, _utils.loadGetInitialProps)(Component, ctx)
-
-                  case 3:
-                    pageProps = _context.sent
-                    return _context.abrupt('return', {
-                      pageProps: pageProps,
-                    })
-
-                  case 5:
-                  case 'end':
-                    return _context.stop()
-                }
-              }
-            }, _callee)
-          })
-        )
-        return _appGetInitialProps.apply(this, arguments)
+              case 3:
+                pageProps = _context.sent
+                return _context.abrupt('return', {
+                  pageProps: pageProps,
+                })
+
+              case 5:
+              case 'end':
+                return _context.stop()
+            }
+          }
+        })
       }
 
       var App =
@@ -222,7 +144,7 @@
                 var url = createUrl(router)
                 return _react['default'].createElement(
                   Component,
-                  (0, _extends2['default'])({}, pageProps, {
+                  _Object$assign({}, pageProps, {
                     url: url,
                   })
                 )
Diff for _app.module.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [4],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ 0: /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('e9+W')
       module.exports = __webpack_require__('nOHt')
@@ -79,6 +11,8 @@
     /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
@@ -86,12 +20,6 @@
       exports.createUrl = createUrl
       exports.default = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _utils = __webpack_require__('g/15')
@@ -102,19 +30,12 @@
        * This allows for keeping state between navigation, custom error handling, injecting additional data.
        */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments)
-      }
-
-      function _appGetInitialProps() {
-        _appGetInitialProps = (0, _asyncToGenerator2.default)(function*(_ref) {
-          var { Component, ctx } = _ref
-          var pageProps = yield (0, _utils.loadGetInitialProps)(Component, ctx)
-          return {
-            pageProps,
-          }
-        })
-        return _appGetInitialProps.apply(this, arguments)
+      async function appGetInitialProps(_ref) {
+        var { Component, ctx } = _ref
+        var pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx)
+        return {
+          pageProps,
+        }
       }
 
       class App extends _react.default.Component {
@@ -130,7 +51,7 @@
           var url = createUrl(router)
           return _react.default.createElement(
             Component,
-            (0, _extends2.default)({}, pageProps, {
+            _Object$assign({}, pageProps, {
               url: url,
             })
           )
Diff for de003c3a9d30..9d.module.js
@@ -51,13 +51,13 @@
     /***/ '0Bsm': /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
       exports.default = withRouter
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router = __webpack_require__('nOHt')
@@ -66,7 +66,7 @@
         function WithRouterWrapper(props) {
           return _react.default.createElement(
             ComposedComponent,
-            (0, _extends2.default)(
+            _Object$assign(
               {
                 router: (0, _router.useRouter)(),
               },
@@ -2661,19 +2661,6 @@
       /***/
     },
 
-    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UbbE')
-
-      /***/
-    },
-
-    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('o8NH')
-      module.exports = __webpack_require__('WEpk').Object.assign
-
-      /***/
-    },
-
     /***/ XVgq: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('2Nb0')
 
@@ -3799,34 +3786,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
-      var _Object$assign = __webpack_require__('UXZV')
-
-      function _extends() {
-        module.exports = _extends =
-          _Object$assign ||
-          function(target) {
-            for (var i = 1; i < arguments.length; i++) {
-              var source = arguments[i]
-
-              for (var key in source) {
-                if (Object.prototype.hasOwnProperty.call(source, key)) {
-                  target[key] = source[key]
-                }
-              }
-            }
-
-            return target
-          }
-
-        return _extends.apply(this, arguments)
-      }
-
-      module.exports = _extends
-
-      /***/
-    },
-
     /***/ iZP3: /***/ function(module, exports, __webpack_require__) {
       var _Symbol$iterator = __webpack_require__('XVgq')
 
@@ -4158,6 +4117,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ nOHt: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _Object$defineProperty = __webpack_require__('hfKm')
 
       var _interopRequireWildcard = __webpack_require__('5Uuq')
@@ -4169,8 +4130,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.makePublicRouterInstance = makePublicRouterInstance
       exports.createRouter = exports.withRouter = exports.default = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router2 = _interopRequireWildcard(__webpack_require__('elyg'))
@@ -4318,7 +4277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         for (var property of urlPropertyFields) {
           if (typeof _router[property] === 'object') {
-            instance[property] = (0, _extends2.default)({}, _router[property]) // makes sure query is not stateful
+            instance[property] = _Object$assign({}, _router[property]) // makes sure query is not stateful
 
             continue
           }
@@ -4338,17 +4297,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
-      // 19.1.3.1 Object.assign(target, source)
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.S + $export.F, 'Object', {
-        assign: __webpack_require__('kwZ1'),
-      })
-
-      /***/
-    },
-
     /***/ pLtp: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('iq4v')
Diff for de003c3a9d30..8363fbfd2.js
@@ -41,13 +41,13 @@
     /***/ '0Bsm': /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
       exports['default'] = withRouter
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router = __webpack_require__('nOHt')
@@ -56,7 +56,7 @@
         function WithRouterWrapper(props) {
           return _react['default'].createElement(
             ComposedComponent,
-            (0, _extends2['default'])(
+            _Object$assign(
               {
                 router: (0, _router.useRouter)(),
               },
@@ -2241,19 +2241,6 @@
       /***/
     },
 
-    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UbbE')
-
-      /***/
-    },
-
-    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('o8NH')
-      module.exports = __webpack_require__('WEpk').Object.assign
-
-      /***/
-    },
-
     /***/ XXOK: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('Rp86')
 
@@ -3721,34 +3708,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
-      var _Object$assign = __webpack_require__('UXZV')
-
-      function _extends() {
-        module.exports = _extends =
-          _Object$assign ||
-          function(target) {
-            for (var i = 1; i < arguments.length; i++) {
-              var source = arguments[i]
-
-              for (var key in source) {
-                if (Object.prototype.hasOwnProperty.call(source, key)) {
-                  target[key] = source[key]
-                }
-              }
-            }
-
-            return target
-          }
-
-        return _extends.apply(this, arguments)
-      }
-
-      module.exports = _extends
-
-      /***/
-    },
-
     /***/ iq4v: /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('Mqbl')
       module.exports = __webpack_require__('WEpk').Object.keys
@@ -4765,6 +4724,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ nOHt: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _getIterator = __webpack_require__('XXOK')
 
       var _construct = __webpack_require__('b3CU')
@@ -4780,8 +4741,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.makePublicRouterInstance = makePublicRouterInstance
       exports.createRouter = exports.withRouter = exports['default'] = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router2 = _interopRequireWildcard(__webpack_require__('elyg'))
@@ -4940,10 +4899,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             var property = _step.value
 
             if (typeof _router[property] === 'object') {
-              instance[property] = (0, _extends2['default'])(
-                {},
-                _router[property]
-              ) // makes sure query is not stateful
+              instance[property] = _Object$assign({}, _router[property]) // makes sure query is not stateful
 
               continue
             }
@@ -4977,17 +4933,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
-      // 19.1.3.1 Object.assign(target, source)
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.S + $export.F, 'Object', {
-        assign: __webpack_require__('kwZ1'),
-      })
-
-      /***/
-    },
-
     /***/ pLtp: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('iq4v')
Diff for main-HASH.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [12],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ '+plK': /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('ApPD')
       module.exports = __webpack_require__('WEpk').Object.getPrototypeOf
@@ -348,10 +280,6 @@
         'default'
       ] = exports.emitter = exports.router = exports.version = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
 
       var _interopRequireWildcard2 = _interopRequireDefault(
@@ -542,335 +470,312 @@
       var emitter = (0, _mitt['default'])()
       exports.emitter = emitter
 
-      var _default =
-        /*#__PURE__*/
-        (function() {
-          var _ref2 = (0, _asyncToGenerator2['default'])(
-            /*#__PURE__*/
-            _regeneratorRuntime.mark(function _callee(_temp) {
-              var _ref,
-                passedWebpackHMR,
-                _ref3,
-                app,
-                mod,
-                initialErr,
-                _require,
-                isValidElementType,
-                renderCtx
-
-              return _regeneratorRuntime.wrap(
-                function _callee$(_context) {
-                  while (1) {
-                    switch ((_context.prev = _context.next)) {
-                      case 0:
-                        ;(_ref = _temp === void 0 ? {} : _temp),
-                          (passedWebpackHMR = _ref.webpackHMR) // This makes sure this specific lines are removed in production
-
-                        if (false) {
-                        }
-
-                        _context.next = 4
-                        return pageLoader.loadPageScript('/_app')
-
-                      case 4:
-                        _ref3 = _context.sent
-                        app = _ref3.page
-                        mod = _ref3.mod
-                        App = app
-
-                        if (mod && mod.unstable_onPerformanceData) {
-                          onPerfEntry = function onPerfEntry(_ref3) {
-                            var name = _ref3.name,
-                              startTime = _ref3.startTime,
-                              value = _ref3.value,
-                              duration = _ref3.duration
-                            mod.unstable_onPerformanceData({
-                              name: name,
-                              startTime: startTime,
-                              value: value,
-                              duration: duration,
-                            })
-                          }
-                        }
-
-                        initialErr = err
-                        _context.prev = 10
-                        _context.next = 13
-                        return pageLoader.loadPage(page)
-
-                      case 13:
-                        Component = _context.sent
-
-                        if (true) {
-                          _context.next = 18
-                          break
-                        }
-
-                        ;(_require = __webpack_require__(
-                          !(function webpackMissingModule() {
-                            var e = new Error("Cannot find module 'react-is'")
-                            e.code = 'MODULE_NOT_FOUND'
-                            throw e
-                          })()
-                        )),
-                          (isValidElementType = _require.isValidElementType)
-
-                        if (isValidElementType(Component)) {
-                          _context.next = 18
-                          break
-                        }
-
-                        throw new Error(
-                          'The default export is not a React Component in page: "' +
-                            page +
-                            '"'
-                        )
-
-                      case 18:
-                        _context.next = 23
-                        break
-
-                      case 20:
-                        _context.prev = 20
-                        _context.t0 = _context['catch'](10)
-                        // This catches errors like throwing in the top level of a module
-                        initialErr = _context.t0
-
-                      case 23:
-                        if (!window.__NEXT_PRELOADREADY) {
-                          _context.next = 26
-                          break
-                        }
-
-                        _context.next = 26
-                        return window.__NEXT_PRELOADREADY(dynamicIds)
-
-                      case 26:
-                        exports.router = router = (0, _router.createRouter)(
-                          page,
-                          query,
-                          asPath,
-                          {
-                            initialProps: props,
-                            pageLoader: pageLoader,
-                            App: App,
-                            Component: Component,
-                            wrapApp: wrapApp,
-                            err: initialErr,
-                            subscription: function subscription(_ref4, App) {
-                              var Component = _ref4.Component,
-                                props = _ref4.props,
-                                err = _ref4.err
-                              render({
-                                App: App,
-                                Component: Component,
-                                props: props,
-                                err: err,
-                              })
-                            },
-                          }
-                        ) // call init-client middleware
-
-                        if (false) {
-                        }
-
-                        renderCtx = {
-                          App: App,
-                          Component: Component,
-                          props: props,
-                          err: initialErr,
-                        }
-
-                        if (false) {
-                        }
-
-                        render(renderCtx)
-                        return _context.abrupt('return', emitter)
-
-                      case 32:
-                        if (true) {
-                          _context.next = 34
-                          break
-                        }
+      var _default = function _default(_temp) {
+        var _ref,
+          passedWebpackHMR,
+          _ref3,
+          app,
+          mod,
+          initialErr,
+          _require,
+          isValidElementType,
+          renderCtx
+
+        return _regeneratorRuntime.async(
+          function _default$(_context) {
+            while (1) {
+              switch ((_context.prev = _context.next)) {
+                case 0:
+                  ;(_ref = _temp === void 0 ? {} : _temp),
+                    (passedWebpackHMR = _ref.webpackHMR) // This makes sure this specific lines are removed in production
+
+                  if (false) {
+                  }
 
-                        return _context.abrupt('return', {
-                          emitter: emitter,
-                          render: render,
-                          renderCtx: renderCtx,
-                        })
+                  _context.next = 4
+                  return _regeneratorRuntime.awrap(
+                    pageLoader.loadPageScript('/_app')
+                  )
 
-                      case 34:
-                      case 'end':
-                        return _context.stop()
+                case 4:
+                  _ref3 = _context.sent
+                  app = _ref3.page
+                  mod = _ref3.mod
+                  App = app
+
+                  if (mod && mod.unstable_onPerformanceData) {
+                    onPerfEntry = function onPerfEntry(_ref2) {
+                      var name = _ref2.name,
+                        startTime = _ref2.startTime,
+                        value = _ref2.value,
+                        duration = _ref2.duration
+                      mod.unstable_onPerformanceData({
+                        name: name,
+                        startTime: startTime,
+                        value: value,
+                        duration: duration,
+                      })
                     }
                   }
-                },
-                _callee,
-                null,
-                [[10, 20]]
-              )
-            })
-          )
 
-          return function(_x) {
-            return _ref2.apply(this, arguments)
-          }
-        })()
+                  initialErr = err
+                  _context.prev = 10
+                  _context.next = 13
+                  return _regeneratorRuntime.awrap(pageLoader.loadPage(page))
 
-      exports['default'] = _default
+                case 13:
+                  Component = _context.sent
 
-      function render(_x2) {
-        return _render.apply(this, arguments)
-      } // This method handles all runtime and debug errors.
-      // 404 and 500 errors are special kind of errors
-      // and they are still handle via the main render method.
+                  if (true) {
+                    _context.next = 18
+                    break
+                  }
 
-      function _render() {
-        _render = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee2(props) {
-            return _regeneratorRuntime.wrap(
-              function _callee2$(_context2) {
-                while (1) {
-                  switch ((_context2.prev = _context2.next)) {
-                    case 0:
-                      if (!props.err) {
-                        _context2.next = 4
-                        break
-                      }
+                  ;(_require = __webpack_require__(
+                    !(function webpackMissingModule() {
+                      var e = new Error("Cannot find module 'react-is'")
+                      e.code = 'MODULE_NOT_FOUND'
+                      throw e
+                    })()
+                  )),
+                    (isValidElementType = _require.isValidElementType)
+
+                  if (isValidElementType(Component)) {
+                    _context.next = 18
+                    break
+                  }
 
-                      _context2.next = 3
-                      return renderError(props)
+                  throw new Error(
+                    'The default export is not a React Component in page: "' +
+                      page +
+                      '"'
+                  )
+
+                case 18:
+                  _context.next = 23
+                  break
 
-                    case 3:
-                      return _context2.abrupt('return')
+                case 20:
+                  _context.prev = 20
+                  _context.t0 = _context['catch'](10)
+                  // This catches errors like throwing in the top level of a module
+                  initialErr = _context.t0
 
-                    case 4:
-                      _context2.prev = 4
-                      _context2.next = 7
-                      return doRender(props)
+                case 23:
+                  if (!window.__NEXT_PRELOADREADY) {
+                    _context.next = 26
+                    break
+                  }
 
-                    case 7:
-                      _context2.next = 13
-                      break
+                  _context.next = 26
+                  return _regeneratorRuntime.awrap(
+                    window.__NEXT_PRELOADREADY(dynamicIds)
+                  )
 
-                    case 9:
-                      _context2.prev = 9
-                      _context2.t0 = _context2['catch'](4)
-                      _context2.next = 13
-                      return renderError(
-                        (0, _extends2['default'])({}, props, {
-                          err: _context2.t0,
+                case 26:
+                  exports.router = router = (0, _router.createRouter)(
+                    page,
+                    query,
+                    asPath,
+                    {
+                      initialProps: props,
+                      pageLoader: pageLoader,
+                      App: App,
+                      Component: Component,
+                      wrapApp: wrapApp,
+                      err: initialErr,
+                      subscription: function subscription(_ref3, App) {
+                        var Component = _ref3.Component,
+                          props = _ref3.props,
+                          err = _ref3.err
+                        render({
+                          App: App,
+                          Component: Component,
+                          props: props,
+                          err: err,
                         })
-                      )
+                      },
+                    }
+                  ) // call init-client middleware
 
-                    case 13:
-                    case 'end':
-                      return _context2.stop()
+                  if (false) {
                   }
-                }
-              },
-              _callee2,
-              null,
-              [[4, 9]]
-            )
-          })
-        )
-        return _render.apply(this, arguments)
-      }
 
-      function renderError(_x3) {
-        return _renderError.apply(this, arguments)
-      } // If hydrate does not exist, eg in preact.
+                  renderCtx = {
+                    App: App,
+                    Component: Component,
+                    props: props,
+                    err: initialErr,
+                  }
 
-      function _renderError() {
-        _renderError = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee3(props) {
-            var App, err, AppTree, appCtx, initProps
-            return _regeneratorRuntime.wrap(function _callee3$(_context3) {
-              while (1) {
-                switch ((_context3.prev = _context3.next)) {
-                  case 0:
-                    ;(App = props.App), (err = props.err) // In development runtime errors are caught by react-error-overlay
-                    // In production we catch runtime errors using componentDidCatch which will trigger renderError
+                  if (false) {
+                  }
 
-                    if (true) {
-                      _context3.next = 3
-                      break
-                    }
+                  render(renderCtx)
+                  return _context.abrupt('return', emitter)
 
-                    return _context3.abrupt(
-                      'return',
-                      webpackHMR.reportRuntimeError(
-                        webpackHMR.prepareError(err)
-                      )
-                    )
+                case 32:
+                  if (true) {
+                    _context.next = 34
+                    break
+                  }
 
-                  case 3:
-                    if (false) {
-                    } // Make sure we log the error to the console, otherwise users can't track down issues.
-
-                    console.error(err)
-                    _context3.next = 7
-                    return pageLoader.loadPage('/_error')
-
-                  case 7:
-                    ErrorComponent = _context3.sent
-                    // In production we do a normal render with the `ErrorComponent` as component.
-                    // If we've gotten here upon initial render, we can use the props from the server.
-                    // Otherwise, we need to call `getInitialProps` on `App` before mounting.
-                    AppTree = wrapApp(App)
-                    appCtx = {
-                      Component: ErrorComponent,
-                      AppTree: AppTree,
-                      router: router,
-                      ctx: {
-                        err: err,
-                        pathname: page,
-                        query: query,
-                        asPath: asPath,
-                        AppTree: AppTree,
-                      },
-                    }
+                  return _context.abrupt('return', {
+                    emitter: emitter,
+                    render: render,
+                    renderCtx: renderCtx,
+                  })
 
-                    if (!props.props) {
-                      _context3.next = 14
-                      break
-                    }
+                case 34:
+                case 'end':
+                  return _context.stop()
+              }
+            }
+          },
+          null,
+          null,
+          [[10, 20]]
+        )
+      }
 
-                    _context3.t0 = props.props
-                    _context3.next = 17
+      exports['default'] = _default
+
+      function render(props) {
+        return _regeneratorRuntime.async(
+          function render$(_context2) {
+            while (1) {
+              switch ((_context2.prev = _context2.next)) {
+                case 0:
+                  if (!props.err) {
+                    _context2.next = 4
                     break
+                  }
+
+                  _context2.next = 3
+                  return _regeneratorRuntime.awrap(renderError(props))
 
-                  case 14:
-                    _context3.next = 16
-                    return (0, _utils.loadGetInitialProps)(App, appCtx)
+                case 3:
+                  return _context2.abrupt('return')
 
-                  case 16:
-                    _context3.t0 = _context3.sent
+                case 4:
+                  _context2.prev = 4
+                  _context2.next = 7
+                  return _regeneratorRuntime.awrap(doRender(props))
 
-                  case 17:
-                    initProps = _context3.t0
-                    _context3.next = 20
-                    return doRender(
+                case 7:
+                  _context2.next = 13
+                  break
+
+                case 9:
+                  _context2.prev = 9
+                  _context2.t0 = _context2['catch'](4)
+                  _context2.next = 13
+                  return _regeneratorRuntime.awrap(
+                    renderError(
                       (0, _extends2['default'])({}, props, {
-                        err: err,
-                        Component: ErrorComponent,
-                        props: initProps,
+                        err: _context2.t0,
                       })
                     )
+                  )
 
-                  case 20:
-                  case 'end':
-                    return _context3.stop()
-                }
+                case 13:
+                case 'end':
+                  return _context2.stop()
               }
-            }, _callee3)
-          })
+            }
+          },
+          null,
+          null,
+          [[4, 9]]
         )
-        return _renderError.apply(this, arguments)
-      }
+      } // This method handles all runtime and debug errors.
+      // 404 and 500 errors are special kind of errors
+      // and they are still handle via the main render method.
+
+      function renderError(props) {
+        var App, err, AppTree, appCtx, initProps
+        return _regeneratorRuntime.async(function renderError$(_context3) {
+          while (1) {
+            switch ((_context3.prev = _context3.next)) {
+              case 0:
+                ;(App = props.App), (err = props.err) // In development runtime errors are caught by react-error-overlay
+                // In production we catch runtime errors using componentDidCatch which will trigger renderError
+
+                if (true) {
+                  _context3.next = 3
+                  break
+                }
+
+                return _context3.abrupt(
+                  'return',
+                  webpackHMR.reportRuntimeError(webpackHMR.prepareError(err))
+                )
+
+              case 3:
+                if (false) {
+                } // Make sure we log the error to the console, otherwise users can't track down issues.
+
+                console.error(err)
+                _context3.next = 7
+                return _regeneratorRuntime.awrap(pageLoader.loadPage('/_error'))
+
+              case 7:
+                ErrorComponent = _context3.sent
+                // In production we do a normal render with the `ErrorComponent` as component.
+                // If we've gotten here upon initial render, we can use the props from the server.
+                // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+                AppTree = wrapApp(App)
+                appCtx = {
+                  Component: ErrorComponent,
+                  AppTree: AppTree,
+                  router: router,
+                  ctx: {
+                    err: err,
+                    pathname: page,
+                    query: query,
+                    asPath: asPath,
+                    AppTree: AppTree,
+                  },
+                }
+
+                if (!props.props) {
+                  _context3.next = 14
+                  break
+                }
+
+                _context3.t0 = props.props
+                _context3.next = 17
+                break
+
+              case 14:
+                _context3.next = 16
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(App, appCtx)
+                )
+
+              case 16:
+                _context3.t0 = _context3.sent
+
+              case 17:
+                initProps = _context3.t0
+                _context3.next = 20
+                return _regeneratorRuntime.awrap(
+                  doRender(
+                    (0, _extends2['default'])({}, props, {
+                      err: err,
+                      Component: ErrorComponent,
+                      props: initProps,
+                    })
+                  )
+                )
+
+              case 20:
+              case 'end':
+                return _context3.stop()
+            }
+          }
+        })
+      } // If hydrate does not exist, eg in preact.
 
       var isInitialRender = typeof _reactDom['default'].hydrate === 'function'
       var reactRoot = null
@@ -976,8 +881,8 @@
         })
       }
 
-      function AppContainer(_ref5) {
-        var children = _ref5.children
+      function AppContainer(_ref4) {
+        var children = _ref4.children
         return _react['default'].createElement(
           Container,
           {
@@ -1021,109 +926,101 @@
         }
       }
 
-      function doRender(_x4) {
-        return _doRender.apply(this, arguments)
-      }
-
-      function _doRender() {
-        _doRender = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee4(_ref6) {
-            var App,
-              Component,
-              props,
-              err,
-              _router2,
-              pathname,
-              _query,
-              _asPath,
-              AppTree,
-              appCtx,
-              appProps,
-              elem
-
-            return _regeneratorRuntime.wrap(function _callee4$(_context4) {
-              while (1) {
-                switch ((_context4.prev = _context4.next)) {
-                  case 0:
-                    ;(App = _ref6.App),
-                      (Component = _ref6.Component),
-                      (props = _ref6.props),
-                      (err = _ref6.err) // Usual getInitialProps fetching is handled in next/router
-                    // this is for when ErrorComponent gets replaced by Component by HMR
-
-                    if (
-                      !(
-                        !props &&
-                        Component &&
-                        Component !== ErrorComponent &&
-                        lastAppProps.Component === ErrorComponent
-                      )
-                    ) {
-                      _context4.next = 8
-                      break
-                    }
+      function doRender(_ref5) {
+        var App,
+          Component,
+          props,
+          err,
+          _router2,
+          pathname,
+          _query,
+          _asPath,
+          AppTree,
+          appCtx,
+          appProps,
+          elem
+
+        return _regeneratorRuntime.async(function doRender$(_context4) {
+          while (1) {
+            switch ((_context4.prev = _context4.next)) {
+              case 0:
+                ;(App = _ref5.App),
+                  (Component = _ref5.Component),
+                  (props = _ref5.props),
+                  (err = _ref5.err) // Usual getInitialProps fetching is handled in next/router
+                // this is for when ErrorComponent gets replaced by Component by HMR
 
-                    ;(_router2 = router),
-                      (pathname = _router2.pathname),
-                      (_query = _router2.query),
-                      (_asPath = _router2.asPath)
-                    AppTree = wrapApp(App)
-                    appCtx = {
-                      router: router,
-                      AppTree: AppTree,
-                      Component: ErrorComponent,
-                      ctx: {
-                        err: err,
-                        pathname: pathname,
-                        query: _query,
-                        asPath: _asPath,
-                        AppTree: AppTree,
-                      },
-                    }
-                    _context4.next = 7
-                    return (0, _utils.loadGetInitialProps)(App, appCtx)
-
-                  case 7:
-                    props = _context4.sent
+                if (
+                  !(
+                    !props &&
+                    Component &&
+                    Component !== ErrorComponent &&
+                    lastAppProps.Component === ErrorComponent
+                  )
+                ) {
+                  _context4.next = 8
+                  break
+                }
 
-                  case 8:
-                    Component = Component || lastAppProps.Component
-                    props = props || lastAppProps.props
-                    appProps = (0, _extends2['default'])({}, props, {
-                      Component: Component,
-                      err: err,
-                      router: router,
-                    }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+                ;(_router2 = router),
+                  (pathname = _router2.pathname),
+                  (_query = _router2.query),
+                  (_asPath = _router2.asPath)
+                AppTree = wrapApp(App)
+                appCtx = {
+                  router: router,
+                  AppTree: AppTree,
+                  Component: ErrorComponent,
+                  ctx: {
+                    err: err,
+                    pathname: pathname,
+                    query: _query,
+                    asPath: _asPath,
+                    AppTree: AppTree,
+                  },
+                }
+                _context4.next = 7
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(App, appCtx)
+                )
 
-                    lastAppProps = appProps
-                    emitter.emit('before-reactdom-render', {
-                      Component: Component,
-                      ErrorComponent: ErrorComponent,
-                      appProps: appProps,
-                    })
-                    elem = _react['default'].createElement(
-                      AppContainer,
-                      null,
-                      _react['default'].createElement(App, appProps)
-                    ) // We catch runtime errors using componentDidCatch which will trigger renderError
-
-                    renderReactElement(false ? undefined : elem, appElement)
-                    emitter.emit('after-reactdom-render', {
-                      Component: Component,
-                      ErrorComponent: ErrorComponent,
-                      appProps: appProps,
-                    })
+              case 7:
+                props = _context4.sent
+
+              case 8:
+                Component = Component || lastAppProps.Component
+                props = props || lastAppProps.props
+                appProps = (0, _extends2['default'])({}, props, {
+                  Component: Component,
+                  err: err,
+                  router: router,
+                }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+
+                lastAppProps = appProps
+                emitter.emit('before-reactdom-render', {
+                  Component: Component,
+                  ErrorComponent: ErrorComponent,
+                  appProps: appProps,
+                })
+                elem = _react['default'].createElement(
+                  AppContainer,
+                  null,
+                  _react['default'].createElement(App, appProps)
+                ) // We catch runtime errors using componentDidCatch which will trigger renderError
+
+                renderReactElement(false ? undefined : elem, appElement)
+                emitter.emit('after-reactdom-render', {
+                  Component: Component,
+                  ErrorComponent: ErrorComponent,
+                  appProps: appProps,
+                })
 
-                  case 16:
-                  case 'end':
-                    return _context4.stop()
-                }
-              }
-            }, _callee4)
-          })
-        )
-        return _doRender.apply(this, arguments)
+              case 16:
+              case 'end':
+                return _context4.stop()
+            }
+          }
+        })
       }
 
       /***/
@@ -1175,6 +1072,19 @@
       /***/
     },
 
+    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
+      module.exports = __webpack_require__('UbbE')
+
+      /***/
+    },
+
+    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
+      __webpack_require__('o8NH')
+      module.exports = __webpack_require__('WEpk').Object.assign
+
+      /***/
+    },
+
     /***/ ZDA2: /***/ function(module, exports, __webpack_require__) {
       var _typeof = __webpack_require__('iZP3')
 
@@ -1196,6 +1106,45 @@
       /***/
     },
 
+    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
+      var _Object$assign = __webpack_require__('UXZV')
+
+      function _extends() {
+        module.exports = _extends =
+          _Object$assign ||
+          function(target) {
+            for (var i = 1; i < arguments.length; i++) {
+              var source = arguments[i]
+
+              for (var key in source) {
+                if (Object.prototype.hasOwnProperty.call(source, key)) {
+                  target[key] = source[key]
+                }
+              }
+            }
+
+            return target
+          }
+
+        return _extends.apply(this, arguments)
+      }
+
+      module.exports = _extends
+
+      /***/
+    },
+
+    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
+      // 19.1.3.1 Object.assign(target, source)
+      var $export = __webpack_require__('Y7ZC')
+
+      $export($export.S + $export.F, 'Object', {
+        assign: __webpack_require__('kwZ1'),
+      })
+
+      /***/
+    },
+
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'
Diff for main-HASH.module.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [11],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ BMP1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -249,10 +181,6 @@
       exports.renderError = renderError
       exports.default = exports.emitter = exports.router = exports.version = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
 
       var _interopRequireWildcard2 = _interopRequireDefault(
@@ -411,168 +339,146 @@
       var emitter = (0, _mitt.default)()
       exports.emitter = emitter
 
-      var _default =
-        /*#__PURE__*/
-        (function() {
-          var _ref2 = (0, _asyncToGenerator2.default)(function*(_temp) {
-            var { webpackHMR: passedWebpackHMR } = _temp === void 0 ? {} : _temp // This makes sure this specific lines are removed in production
+      var _default = async function _default(_temp) {
+        var { webpackHMR: passedWebpackHMR } = _temp === void 0 ? {} : _temp // This makes sure this specific lines are removed in production
 
-            if (false) {
-            }
+        if (false) {
+        }
 
-            var { page: app, mod } = yield pageLoader.loadPageScript('/_app')
-            App = app
-
-            if (mod && mod.unstable_onPerformanceData) {
-              onPerfEntry = function onPerfEntry(_ref3) {
-                var { name, startTime, value, duration } = _ref3
-                mod.unstable_onPerformanceData({
-                  name,
-                  startTime,
-                  value,
-                  duration,
-                })
-              }
-            }
+        var { page: app, mod } = await pageLoader.loadPageScript('/_app')
+        App = app
+
+        if (mod && mod.unstable_onPerformanceData) {
+          onPerfEntry = function onPerfEntry(_ref2) {
+            var { name, startTime, value, duration } = _ref2
+            mod.unstable_onPerformanceData({
+              name,
+              startTime,
+              value,
+              duration,
+            })
+          }
+        }
 
-            var initialErr = err
+        var initialErr = err
 
-            try {
-              Component = yield pageLoader.loadPage(page)
+        try {
+          Component = await pageLoader.loadPage(page)
 
-              if (false) {
-                var isValidElementType
-              }
-            } catch (error) {
-              // This catches errors like throwing in the top level of a module
-              initialErr = error
-            }
+          if (false) {
+            var isValidElementType
+          }
+        } catch (error) {
+          // This catches errors like throwing in the top level of a module
+          initialErr = error
+        }
 
-            if (window.__NEXT_PRELOADREADY) {
-              yield window.__NEXT_PRELOADREADY(dynamicIds)
-            }
+        if (window.__NEXT_PRELOADREADY) {
+          await window.__NEXT_PRELOADREADY(dynamicIds)
+        }
 
-            exports.router = router = (0, _router.createRouter)(
-              page,
-              query,
-              asPath,
-              {
-                initialProps: props,
-                pageLoader,
+        exports.router = router = (0, _router.createRouter)(
+          page,
+          query,
+          asPath,
+          {
+            initialProps: props,
+            pageLoader,
+            App,
+            Component,
+            wrapApp,
+            err: initialErr,
+            subscription: (_ref3, App) => {
+              var { Component, props, err } = _ref3
+              render({
                 App,
                 Component,
-                wrapApp,
-                err: initialErr,
-                subscription: (_ref4, App) => {
-                  var { Component, props, err } = _ref4
-                  render({
-                    App,
-                    Component,
-                    props,
-                    err,
-                  })
-                },
-              }
-            ) // call init-client middleware
-
-            if (false) {
-            }
+                props,
+                err,
+              })
+            },
+          }
+        ) // call init-client middleware
 
-            var renderCtx = {
-              App,
-              Component,
-              props,
-              err: initialErr,
-            }
+        if (false) {
+        }
 
-            if (true) {
-              render(renderCtx)
-              return emitter
-            }
+        var renderCtx = {
+          App,
+          Component,
+          props,
+          err: initialErr,
+        }
 
-            if (false) {
-            }
-          })
+        if (true) {
+          render(renderCtx)
+          return emitter
+        }
 
-          return function(_x) {
-            return _ref2.apply(this, arguments)
-          }
-        })()
+        if (false) {
+        }
+      }
 
       exports.default = _default
 
-      function render(_x2) {
-        return _render.apply(this, arguments)
+      async function render(props) {
+        if (props.err) {
+          await renderError(props)
+          return
+        }
+
+        try {
+          await doRender(props)
+        } catch (err) {
+          await renderError(
+            (0, _extends2.default)({}, props, {
+              err,
+            })
+          )
+        }
       } // This method handles all runtime and debug errors.
       // 404 and 500 errors are special kind of errors
       // and they are still handle via the main render method.
 
-      function _render() {
-        _render = (0, _asyncToGenerator2.default)(function*(props) {
-          if (props.err) {
-            yield renderError(props)
-            return
-          }
-
-          try {
-            yield doRender(props)
-          } catch (err) {
-            yield renderError(
-              (0, _extends2.default)({}, props, {
-                err,
-              })
-            )
-          }
-        })
-        return _render.apply(this, arguments)
-      }
-
-      function renderError(_x3) {
-        return _renderError.apply(this, arguments)
-      } // If hydrate does not exist, eg in preact.
-
-      function _renderError() {
-        _renderError = (0, _asyncToGenerator2.default)(function*(props) {
-          var { App, err } = props // In development runtime errors are caught by react-error-overlay
-          // In production we catch runtime errors using componentDidCatch which will trigger renderError
+      async function renderError(props) {
+        var { App, err } = props // In development runtime errors are caught by react-error-overlay
+        // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-          if (false) {
-          }
+        if (false) {
+        }
 
-          if (false) {
-          } // Make sure we log the error to the console, otherwise users can't track down issues.
+        if (false) {
+        } // Make sure we log the error to the console, otherwise users can't track down issues.
 
-          console.error(err)
-          ErrorComponent = yield pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
-          // If we've gotten here upon initial render, we can use the props from the server.
-          // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+        console.error(err)
+        ErrorComponent = await pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
+        // If we've gotten here upon initial render, we can use the props from the server.
+        // Otherwise, we need to call `getInitialProps` on `App` before mounting.
 
-          var AppTree = wrapApp(App)
-          var appCtx = {
-            Component: ErrorComponent,
+        var AppTree = wrapApp(App)
+        var appCtx = {
+          Component: ErrorComponent,
+          AppTree,
+          router,
+          ctx: {
+            err,
+            pathname: page,
+            query,
+            asPath,
             AppTree,
-            router,
-            ctx: {
-              err,
-              pathname: page,
-              query,
-              asPath,
-              AppTree,
-            },
-          }
-          var initProps = props.props
-            ? props.props
-            : yield (0, _utils.loadGetInitialProps)(App, appCtx)
-          yield doRender(
-            (0, _extends2.default)({}, props, {
-              err,
-              Component: ErrorComponent,
-              props: initProps,
-            })
-          )
-        })
-        return _renderError.apply(this, arguments)
-      }
+          },
+        }
+        var initProps = props.props
+          ? props.props
+          : await (0, _utils.loadGetInitialProps)(App, appCtx)
+        await doRender(
+          (0, _extends2.default)({}, props, {
+            err,
+            Component: ErrorComponent,
+            props: initProps,
+          })
+        )
+      } // If hydrate does not exist, eg in preact.
 
       var isInitialRender = typeof _reactDom.default.hydrate === 'function'
       var reactRoot = null
@@ -674,8 +580,8 @@
         ].forEach(measure => performance.clearMeasures(measure))
       }
 
-      function AppContainer(_ref5) {
-        var { children } = _ref5
+      function AppContainer(_ref4) {
+        var { children } = _ref4
         return _react.default.createElement(
           Container,
           {
@@ -714,68 +620,113 @@
         )
       }
 
-      function doRender(_x4) {
-        return _doRender.apply(this, arguments)
+      async function doRender(_ref5) {
+        var { App, Component, props, err } = _ref5 // Usual getInitialProps fetching is handled in next/router
+        // this is for when ErrorComponent gets replaced by Component by HMR
+
+        if (
+          !props &&
+          Component &&
+          Component !== ErrorComponent &&
+          lastAppProps.Component === ErrorComponent
+        ) {
+          var { pathname, query: _query, asPath: _asPath } = router
+          var AppTree = wrapApp(App)
+          var appCtx = {
+            router,
+            AppTree,
+            Component: ErrorComponent,
+            ctx: {
+              err,
+              pathname,
+              query: _query,
+              asPath: _asPath,
+              AppTree,
+            },
+          }
+          props = await (0, _utils.loadGetInitialProps)(App, appCtx)
+        }
+
+        Component = Component || lastAppProps.Component
+        props = props || lastAppProps.props
+        var appProps = (0, _extends2.default)({}, props, {
+          Component,
+          err,
+          router,
+        }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+
+        lastAppProps = appProps
+        emitter.emit('before-reactdom-render', {
+          Component,
+          ErrorComponent,
+          appProps,
+        })
+
+        var elem = _react.default.createElement(
+          AppContainer,
+          null,
+          _react.default.createElement(App, appProps)
+        ) // We catch runtime errors using componentDidCatch which will trigger renderError
+
+        renderReactElement(false ? undefined : elem, appElement)
+        emitter.emit('after-reactdom-render', {
+          Component,
+          ErrorComponent,
+          appProps,
+        })
       }
 
-      function _doRender() {
-        _doRender = (0, _asyncToGenerator2.default)(function*(_ref6) {
-          var { App, Component, props, err } = _ref6 // Usual getInitialProps fetching is handled in next/router
-          // this is for when ErrorComponent gets replaced by Component by HMR
+      /***/
+    },
 
-          if (
-            !props &&
-            Component &&
-            Component !== ErrorComponent &&
-            lastAppProps.Component === ErrorComponent
-          ) {
-            var { pathname, query: _query, asPath: _asPath } = router
-            var AppTree = wrapApp(App)
-            var appCtx = {
-              router,
-              AppTree,
-              Component: ErrorComponent,
-              ctx: {
-                err,
-                pathname,
-                query: _query,
-                asPath: _asPath,
-                AppTree,
-              },
+    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
+      module.exports = __webpack_require__('UbbE')
+
+      /***/
+    },
+
+    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
+      __webpack_require__('o8NH')
+      module.exports = __webpack_require__('WEpk').Object.assign
+
+      /***/
+    },
+
+    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
+      var _Object$assign = __webpack_require__('UXZV')
+
+      function _extends() {
+        module.exports = _extends =
+          _Object$assign ||
+          function(target) {
+            for (var i = 1; i < arguments.length; i++) {
+              var source = arguments[i]
+
+              for (var key in source) {
+                if (Object.prototype.hasOwnProperty.call(source, key)) {
+                  target[key] = source[key]
+                }
+              }
             }
-            props = yield (0, _utils.loadGetInitialProps)(App, appCtx)
+
+            return target
           }
 
-          Component = Component || lastAppProps.Component
-          props = props || lastAppProps.props
-          var appProps = (0, _extends2.default)({}, props, {
-            Component,
-            err,
-            router,
-          }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+        return _extends.apply(this, arguments)
+      }
 
-          lastAppProps = appProps
-          emitter.emit('before-reactdom-render', {
-            Component,
-            ErrorComponent,
-            appProps,
-          })
+      module.exports = _extends
 
-          var elem = _react.default.createElement(
-            AppContainer,
-            null,
-            _react.default.createElement(App, appProps)
-          ) // We catch runtime errors using componentDidCatch which will trigger renderError
+      /***/
+    },
 
-          renderReactElement(false ? undefined : elem, appElement)
-          emitter.emit('after-reactdom-render', {
-            Component,
-            ErrorComponent,
-            appProps,
-          })
-        })
-        return _doRender.apply(this, arguments)
-      }
+    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
+      // 19.1.3.1 Object.assign(target, source)
+      var $export = __webpack_require__('Y7ZC')
+
+      $export($export.S + $export.F, 'Object', {
+        assign: __webpack_require__('kwZ1'),
+      })
 
       /***/
     },
Diff for index.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -156,25 +156,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
buildDuration 14.2s 13.6s -616ms
nodeModulesSize 48.9 MB 48.8 MB -2.09 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.js gzip 5.12 kB 5.1 kB -16 B
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d6b9.js gzip 16.3 kB N/A N/A
framework.HASH.js gzip 39.1 kB 39.1 kB
de003c3a9d30..d57b.js gzip N/A 16.1 kB N/A
Overall change 70 kB 69.8 kB -16 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.module.js gzip 4.15 kB 4.1 kB -52 B
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB N/A N/A
framework.HA..dule.js gzip 39.1 kB 39.1 kB
de003c3a9d30..dule.js gzip N/A 15 kB N/A
Overall change 64.7 kB 64.5 kB -52 B
Legacy Client Bundles (polyfills)
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.js gzip 1.34 kB 1.15 kB -190 B
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.68 kB -190 B
Client Pages Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.module.js gzip 769 B 576 B -193 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.42 kB 7.22 kB -193 B
Client Build Manifests
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_error.js gzip 60.5 kB 46.2 kB -14.3 kB
hooks.html gzip 1.06 kB 1.05 kB -1 B
index.js gzip 60.9 kB 46.4 kB -14.5 kB
link.js gzip 77.8 kB 71.9 kB -5.94 kB
routerDirect.js gzip 75.9 kB 69.9 kB -5.96 kB
withRouter.js gzip 75.9 kB 69.9 kB -5.96 kB
Overall change 352 kB 305 kB -46.7 kB

Commit: f8ad8ce

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

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

Nice savings!

@ijjk
Copy link
Member

ijjk commented Jan 22, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
buildDuration 11.9s 11.8s -74ms
nodeModulesSize 48.9 MB 48.8 MB -2.09 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.js gzip 5.12 kB 5.1 kB -16 B
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d6b9.js gzip 16.3 kB 16.1 kB -172 B
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 70 kB 69.8 kB -188 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.module.js gzip 4.15 kB 4.1 kB -52 B
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB 15 kB -133 B
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 64.7 kB 64.5 kB -185 B
Legacy Client Bundles (polyfills)
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.js gzip 1.34 kB 1.15 kB -190 B
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.68 kB -190 B
Client Pages Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.module.js gzip 769 B 576 B -193 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.42 kB 7.22 kB -193 B
Client Build Manifests
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
index.html gzip 1.02 kB 1.02 kB -3 B
link.html gzip 1.03 kB 1.03 kB -2 B
withRouter.html gzip 1.02 kB 1.02 kB -2 B
Overall change 3.07 kB 3.07 kB -7 B

Diffs

Diff for _app.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [5],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ '+plK': /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('ApPD')
       module.exports = __webpack_require__('WEpk').Object.getPrototypeOf
@@ -119,6 +51,8 @@
     /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _classCallCheck = __webpack_require__('/HRN')
 
       var _createClass = __webpack_require__('WaGi')
@@ -138,12 +72,6 @@
       exports.createUrl = createUrl
       exports['default'] = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _utils = __webpack_require__('g/15')
@@ -154,38 +82,32 @@
        * This allows for keeping state between navigation, custom error handling, injecting additional data.
        */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments)
-      }
+      function appGetInitialProps(_ref) {
+        var Component, ctx, pageProps
+        return _regeneratorRuntime.async(function appGetInitialProps$(
+          _context
+        ) {
+          while (1) {
+            switch ((_context.prev = _context.next)) {
+              case 0:
+                ;(Component = _ref.Component), (ctx = _ref.ctx)
+                _context.next = 3
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(Component, ctx)
+                )
 
-      function _appGetInitialProps() {
-        _appGetInitialProps = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    ;(Component = _ref.Component), (ctx = _ref.ctx)
-                    _context.next = 3
-                    return (0, _utils.loadGetInitialProps)(Component, ctx)
-
-                  case 3:
-                    pageProps = _context.sent
-                    return _context.abrupt('return', {
-                      pageProps: pageProps,
-                    })
-
-                  case 5:
-                  case 'end':
-                    return _context.stop()
-                }
-              }
-            }, _callee)
-          })
-        )
-        return _appGetInitialProps.apply(this, arguments)
+              case 3:
+                pageProps = _context.sent
+                return _context.abrupt('return', {
+                  pageProps: pageProps,
+                })
+
+              case 5:
+              case 'end':
+                return _context.stop()
+            }
+          }
+        })
       }
 
       var App =
@@ -222,7 +144,7 @@
                 var url = createUrl(router)
                 return _react['default'].createElement(
                   Component,
-                  (0, _extends2['default'])({}, pageProps, {
+                  _Object$assign({}, pageProps, {
                     url: url,
                   })
                 )
Diff for _app.module.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [4],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ 0: /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('e9+W')
       module.exports = __webpack_require__('nOHt')
@@ -79,6 +11,8 @@
     /***/ B5Ud: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
@@ -86,12 +20,6 @@
       exports.createUrl = createUrl
       exports.default = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _utils = __webpack_require__('g/15')
@@ -102,19 +30,12 @@
        * This allows for keeping state between navigation, custom error handling, injecting additional data.
        */
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments)
-      }
-
-      function _appGetInitialProps() {
-        _appGetInitialProps = (0, _asyncToGenerator2.default)(function*(_ref) {
-          var { Component, ctx } = _ref
-          var pageProps = yield (0, _utils.loadGetInitialProps)(Component, ctx)
-          return {
-            pageProps,
-          }
-        })
-        return _appGetInitialProps.apply(this, arguments)
+      async function appGetInitialProps(_ref) {
+        var { Component, ctx } = _ref
+        var pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx)
+        return {
+          pageProps,
+        }
       }
 
       class App extends _react.default.Component {
@@ -130,7 +51,7 @@
           var url = createUrl(router)
           return _react.default.createElement(
             Component,
-            (0, _extends2.default)({}, pageProps, {
+            _Object$assign({}, pageProps, {
               url: url,
             })
           )
Diff for de003c3a9d30..9d.module.js
@@ -51,13 +51,13 @@
     /***/ '0Bsm': /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
       exports.default = withRouter
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router = __webpack_require__('nOHt')
@@ -66,7 +66,7 @@
         function WithRouterWrapper(props) {
           return _react.default.createElement(
             ComposedComponent,
-            (0, _extends2.default)(
+            _Object$assign(
               {
                 router: (0, _router.useRouter)(),
               },
@@ -2661,19 +2661,6 @@
       /***/
     },
 
-    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UbbE')
-
-      /***/
-    },
-
-    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('o8NH')
-      module.exports = __webpack_require__('WEpk').Object.assign
-
-      /***/
-    },
-
     /***/ XVgq: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('2Nb0')
 
@@ -3799,34 +3786,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
-      var _Object$assign = __webpack_require__('UXZV')
-
-      function _extends() {
-        module.exports = _extends =
-          _Object$assign ||
-          function(target) {
-            for (var i = 1; i < arguments.length; i++) {
-              var source = arguments[i]
-
-              for (var key in source) {
-                if (Object.prototype.hasOwnProperty.call(source, key)) {
-                  target[key] = source[key]
-                }
-              }
-            }
-
-            return target
-          }
-
-        return _extends.apply(this, arguments)
-      }
-
-      module.exports = _extends
-
-      /***/
-    },
-
     /***/ iZP3: /***/ function(module, exports, __webpack_require__) {
       var _Symbol$iterator = __webpack_require__('XVgq')
 
@@ -4158,6 +4117,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ nOHt: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _Object$defineProperty = __webpack_require__('hfKm')
 
       var _interopRequireWildcard = __webpack_require__('5Uuq')
@@ -4169,8 +4130,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.makePublicRouterInstance = makePublicRouterInstance
       exports.createRouter = exports.withRouter = exports.default = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router2 = _interopRequireWildcard(__webpack_require__('elyg'))
@@ -4318,7 +4277,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
         for (var property of urlPropertyFields) {
           if (typeof _router[property] === 'object') {
-            instance[property] = (0, _extends2.default)({}, _router[property]) // makes sure query is not stateful
+            instance[property] = _Object$assign({}, _router[property]) // makes sure query is not stateful
 
             continue
           }
@@ -4338,17 +4297,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
-      // 19.1.3.1 Object.assign(target, source)
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.S + $export.F, 'Object', {
-        assign: __webpack_require__('kwZ1'),
-      })
-
-      /***/
-    },
-
     /***/ pLtp: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('iq4v')
Diff for de003c3a9d30..8363fbfd2.js
@@ -41,13 +41,13 @@
     /***/ '0Bsm': /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _interopRequireDefault = __webpack_require__('KI45')
 
       exports.__esModule = true
       exports['default'] = withRouter
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router = __webpack_require__('nOHt')
@@ -56,7 +56,7 @@
         function WithRouterWrapper(props) {
           return _react['default'].createElement(
             ComposedComponent,
-            (0, _extends2['default'])(
+            _Object$assign(
               {
                 router: (0, _router.useRouter)(),
               },
@@ -2241,19 +2241,6 @@
       /***/
     },
 
-    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UbbE')
-
-      /***/
-    },
-
-    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('o8NH')
-      module.exports = __webpack_require__('WEpk').Object.assign
-
-      /***/
-    },
-
     /***/ XXOK: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('Rp86')
 
@@ -3721,34 +3708,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
-      var _Object$assign = __webpack_require__('UXZV')
-
-      function _extends() {
-        module.exports = _extends =
-          _Object$assign ||
-          function(target) {
-            for (var i = 1; i < arguments.length; i++) {
-              var source = arguments[i]
-
-              for (var key in source) {
-                if (Object.prototype.hasOwnProperty.call(source, key)) {
-                  target[key] = source[key]
-                }
-              }
-            }
-
-            return target
-          }
-
-        return _extends.apply(this, arguments)
-      }
-
-      module.exports = _extends
-
-      /***/
-    },
-
     /***/ iq4v: /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('Mqbl')
       module.exports = __webpack_require__('WEpk').Object.keys
@@ -4765,6 +4724,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ nOHt: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
+      var _Object$assign = __webpack_require__('Qetd')
+
       var _getIterator = __webpack_require__('XXOK')
 
       var _construct = __webpack_require__('b3CU')
@@ -4780,8 +4741,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.makePublicRouterInstance = makePublicRouterInstance
       exports.createRouter = exports.withRouter = exports['default'] = void 0
 
-      var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
-
       var _react = _interopRequireDefault(__webpack_require__('q1tI'))
 
       var _router2 = _interopRequireWildcard(__webpack_require__('elyg'))
@@ -4940,10 +4899,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             var property = _step.value
 
             if (typeof _router[property] === 'object') {
-              instance[property] = (0, _extends2['default'])(
-                {},
-                _router[property]
-              ) // makes sure query is not stateful
+              instance[property] = _Object$assign({}, _router[property]) // makes sure query is not stateful
 
               continue
             }
@@ -4977,17 +4933,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       /***/
     },
 
-    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
-      // 19.1.3.1 Object.assign(target, source)
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.S + $export.F, 'Object', {
-        assign: __webpack_require__('kwZ1'),
-      })
-
-      /***/
-    },
-
     /***/ pLtp: /***/ function(module, exports, __webpack_require__) {
       module.exports = __webpack_require__('iq4v')
Diff for main-HASH.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [12],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ '+plK': /***/ function(module, exports, __webpack_require__) {
       __webpack_require__('ApPD')
       module.exports = __webpack_require__('WEpk').Object.getPrototypeOf
@@ -348,10 +280,6 @@
         'default'
       ] = exports.emitter = exports.router = exports.version = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
 
       var _interopRequireWildcard2 = _interopRequireDefault(
@@ -542,335 +470,312 @@
       var emitter = (0, _mitt['default'])()
       exports.emitter = emitter
 
-      var _default =
-        /*#__PURE__*/
-        (function() {
-          var _ref2 = (0, _asyncToGenerator2['default'])(
-            /*#__PURE__*/
-            _regeneratorRuntime.mark(function _callee(_temp) {
-              var _ref,
-                passedWebpackHMR,
-                _ref3,
-                app,
-                mod,
-                initialErr,
-                _require,
-                isValidElementType,
-                renderCtx
-
-              return _regeneratorRuntime.wrap(
-                function _callee$(_context) {
-                  while (1) {
-                    switch ((_context.prev = _context.next)) {
-                      case 0:
-                        ;(_ref = _temp === void 0 ? {} : _temp),
-                          (passedWebpackHMR = _ref.webpackHMR) // This makes sure this specific lines are removed in production
-
-                        if (false) {
-                        }
-
-                        _context.next = 4
-                        return pageLoader.loadPageScript('/_app')
-
-                      case 4:
-                        _ref3 = _context.sent
-                        app = _ref3.page
-                        mod = _ref3.mod
-                        App = app
-
-                        if (mod && mod.unstable_onPerformanceData) {
-                          onPerfEntry = function onPerfEntry(_ref3) {
-                            var name = _ref3.name,
-                              startTime = _ref3.startTime,
-                              value = _ref3.value,
-                              duration = _ref3.duration
-                            mod.unstable_onPerformanceData({
-                              name: name,
-                              startTime: startTime,
-                              value: value,
-                              duration: duration,
-                            })
-                          }
-                        }
-
-                        initialErr = err
-                        _context.prev = 10
-                        _context.next = 13
-                        return pageLoader.loadPage(page)
-
-                      case 13:
-                        Component = _context.sent
-
-                        if (true) {
-                          _context.next = 18
-                          break
-                        }
-
-                        ;(_require = __webpack_require__(
-                          !(function webpackMissingModule() {
-                            var e = new Error("Cannot find module 'react-is'")
-                            e.code = 'MODULE_NOT_FOUND'
-                            throw e
-                          })()
-                        )),
-                          (isValidElementType = _require.isValidElementType)
-
-                        if (isValidElementType(Component)) {
-                          _context.next = 18
-                          break
-                        }
-
-                        throw new Error(
-                          'The default export is not a React Component in page: "' +
-                            page +
-                            '"'
-                        )
-
-                      case 18:
-                        _context.next = 23
-                        break
-
-                      case 20:
-                        _context.prev = 20
-                        _context.t0 = _context['catch'](10)
-                        // This catches errors like throwing in the top level of a module
-                        initialErr = _context.t0
-
-                      case 23:
-                        if (!window.__NEXT_PRELOADREADY) {
-                          _context.next = 26
-                          break
-                        }
-
-                        _context.next = 26
-                        return window.__NEXT_PRELOADREADY(dynamicIds)
-
-                      case 26:
-                        exports.router = router = (0, _router.createRouter)(
-                          page,
-                          query,
-                          asPath,
-                          {
-                            initialProps: props,
-                            pageLoader: pageLoader,
-                            App: App,
-                            Component: Component,
-                            wrapApp: wrapApp,
-                            err: initialErr,
-                            subscription: function subscription(_ref4, App) {
-                              var Component = _ref4.Component,
-                                props = _ref4.props,
-                                err = _ref4.err
-                              render({
-                                App: App,
-                                Component: Component,
-                                props: props,
-                                err: err,
-                              })
-                            },
-                          }
-                        ) // call init-client middleware
-
-                        if (false) {
-                        }
-
-                        renderCtx = {
-                          App: App,
-                          Component: Component,
-                          props: props,
-                          err: initialErr,
-                        }
-
-                        if (false) {
-                        }
-
-                        render(renderCtx)
-                        return _context.abrupt('return', emitter)
-
-                      case 32:
-                        if (true) {
-                          _context.next = 34
-                          break
-                        }
+      var _default = function _default(_temp) {
+        var _ref,
+          passedWebpackHMR,
+          _ref3,
+          app,
+          mod,
+          initialErr,
+          _require,
+          isValidElementType,
+          renderCtx
+
+        return _regeneratorRuntime.async(
+          function _default$(_context) {
+            while (1) {
+              switch ((_context.prev = _context.next)) {
+                case 0:
+                  ;(_ref = _temp === void 0 ? {} : _temp),
+                    (passedWebpackHMR = _ref.webpackHMR) // This makes sure this specific lines are removed in production
+
+                  if (false) {
+                  }
 
-                        return _context.abrupt('return', {
-                          emitter: emitter,
-                          render: render,
-                          renderCtx: renderCtx,
-                        })
+                  _context.next = 4
+                  return _regeneratorRuntime.awrap(
+                    pageLoader.loadPageScript('/_app')
+                  )
 
-                      case 34:
-                      case 'end':
-                        return _context.stop()
+                case 4:
+                  _ref3 = _context.sent
+                  app = _ref3.page
+                  mod = _ref3.mod
+                  App = app
+
+                  if (mod && mod.unstable_onPerformanceData) {
+                    onPerfEntry = function onPerfEntry(_ref2) {
+                      var name = _ref2.name,
+                        startTime = _ref2.startTime,
+                        value = _ref2.value,
+                        duration = _ref2.duration
+                      mod.unstable_onPerformanceData({
+                        name: name,
+                        startTime: startTime,
+                        value: value,
+                        duration: duration,
+                      })
                     }
                   }
-                },
-                _callee,
-                null,
-                [[10, 20]]
-              )
-            })
-          )
 
-          return function(_x) {
-            return _ref2.apply(this, arguments)
-          }
-        })()
+                  initialErr = err
+                  _context.prev = 10
+                  _context.next = 13
+                  return _regeneratorRuntime.awrap(pageLoader.loadPage(page))
 
-      exports['default'] = _default
+                case 13:
+                  Component = _context.sent
 
-      function render(_x2) {
-        return _render.apply(this, arguments)
-      } // This method handles all runtime and debug errors.
-      // 404 and 500 errors are special kind of errors
-      // and they are still handle via the main render method.
+                  if (true) {
+                    _context.next = 18
+                    break
+                  }
 
-      function _render() {
-        _render = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee2(props) {
-            return _regeneratorRuntime.wrap(
-              function _callee2$(_context2) {
-                while (1) {
-                  switch ((_context2.prev = _context2.next)) {
-                    case 0:
-                      if (!props.err) {
-                        _context2.next = 4
-                        break
-                      }
+                  ;(_require = __webpack_require__(
+                    !(function webpackMissingModule() {
+                      var e = new Error("Cannot find module 'react-is'")
+                      e.code = 'MODULE_NOT_FOUND'
+                      throw e
+                    })()
+                  )),
+                    (isValidElementType = _require.isValidElementType)
+
+                  if (isValidElementType(Component)) {
+                    _context.next = 18
+                    break
+                  }
 
-                      _context2.next = 3
-                      return renderError(props)
+                  throw new Error(
+                    'The default export is not a React Component in page: "' +
+                      page +
+                      '"'
+                  )
+
+                case 18:
+                  _context.next = 23
+                  break
 
-                    case 3:
-                      return _context2.abrupt('return')
+                case 20:
+                  _context.prev = 20
+                  _context.t0 = _context['catch'](10)
+                  // This catches errors like throwing in the top level of a module
+                  initialErr = _context.t0
 
-                    case 4:
-                      _context2.prev = 4
-                      _context2.next = 7
-                      return doRender(props)
+                case 23:
+                  if (!window.__NEXT_PRELOADREADY) {
+                    _context.next = 26
+                    break
+                  }
 
-                    case 7:
-                      _context2.next = 13
-                      break
+                  _context.next = 26
+                  return _regeneratorRuntime.awrap(
+                    window.__NEXT_PRELOADREADY(dynamicIds)
+                  )
 
-                    case 9:
-                      _context2.prev = 9
-                      _context2.t0 = _context2['catch'](4)
-                      _context2.next = 13
-                      return renderError(
-                        (0, _extends2['default'])({}, props, {
-                          err: _context2.t0,
+                case 26:
+                  exports.router = router = (0, _router.createRouter)(
+                    page,
+                    query,
+                    asPath,
+                    {
+                      initialProps: props,
+                      pageLoader: pageLoader,
+                      App: App,
+                      Component: Component,
+                      wrapApp: wrapApp,
+                      err: initialErr,
+                      subscription: function subscription(_ref3, App) {
+                        var Component = _ref3.Component,
+                          props = _ref3.props,
+                          err = _ref3.err
+                        render({
+                          App: App,
+                          Component: Component,
+                          props: props,
+                          err: err,
                         })
-                      )
+                      },
+                    }
+                  ) // call init-client middleware
 
-                    case 13:
-                    case 'end':
-                      return _context2.stop()
+                  if (false) {
                   }
-                }
-              },
-              _callee2,
-              null,
-              [[4, 9]]
-            )
-          })
-        )
-        return _render.apply(this, arguments)
-      }
 
-      function renderError(_x3) {
-        return _renderError.apply(this, arguments)
-      } // If hydrate does not exist, eg in preact.
+                  renderCtx = {
+                    App: App,
+                    Component: Component,
+                    props: props,
+                    err: initialErr,
+                  }
 
-      function _renderError() {
-        _renderError = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee3(props) {
-            var App, err, AppTree, appCtx, initProps
-            return _regeneratorRuntime.wrap(function _callee3$(_context3) {
-              while (1) {
-                switch ((_context3.prev = _context3.next)) {
-                  case 0:
-                    ;(App = props.App), (err = props.err) // In development runtime errors are caught by react-error-overlay
-                    // In production we catch runtime errors using componentDidCatch which will trigger renderError
+                  if (false) {
+                  }
 
-                    if (true) {
-                      _context3.next = 3
-                      break
-                    }
+                  render(renderCtx)
+                  return _context.abrupt('return', emitter)
 
-                    return _context3.abrupt(
-                      'return',
-                      webpackHMR.reportRuntimeError(
-                        webpackHMR.prepareError(err)
-                      )
-                    )
+                case 32:
+                  if (true) {
+                    _context.next = 34
+                    break
+                  }
 
-                  case 3:
-                    if (false) {
-                    } // Make sure we log the error to the console, otherwise users can't track down issues.
-
-                    console.error(err)
-                    _context3.next = 7
-                    return pageLoader.loadPage('/_error')
-
-                  case 7:
-                    ErrorComponent = _context3.sent
-                    // In production we do a normal render with the `ErrorComponent` as component.
-                    // If we've gotten here upon initial render, we can use the props from the server.
-                    // Otherwise, we need to call `getInitialProps` on `App` before mounting.
-                    AppTree = wrapApp(App)
-                    appCtx = {
-                      Component: ErrorComponent,
-                      AppTree: AppTree,
-                      router: router,
-                      ctx: {
-                        err: err,
-                        pathname: page,
-                        query: query,
-                        asPath: asPath,
-                        AppTree: AppTree,
-                      },
-                    }
+                  return _context.abrupt('return', {
+                    emitter: emitter,
+                    render: render,
+                    renderCtx: renderCtx,
+                  })
 
-                    if (!props.props) {
-                      _context3.next = 14
-                      break
-                    }
+                case 34:
+                case 'end':
+                  return _context.stop()
+              }
+            }
+          },
+          null,
+          null,
+          [[10, 20]]
+        )
+      }
 
-                    _context3.t0 = props.props
-                    _context3.next = 17
+      exports['default'] = _default
+
+      function render(props) {
+        return _regeneratorRuntime.async(
+          function render$(_context2) {
+            while (1) {
+              switch ((_context2.prev = _context2.next)) {
+                case 0:
+                  if (!props.err) {
+                    _context2.next = 4
                     break
+                  }
+
+                  _context2.next = 3
+                  return _regeneratorRuntime.awrap(renderError(props))
 
-                  case 14:
-                    _context3.next = 16
-                    return (0, _utils.loadGetInitialProps)(App, appCtx)
+                case 3:
+                  return _context2.abrupt('return')
 
-                  case 16:
-                    _context3.t0 = _context3.sent
+                case 4:
+                  _context2.prev = 4
+                  _context2.next = 7
+                  return _regeneratorRuntime.awrap(doRender(props))
 
-                  case 17:
-                    initProps = _context3.t0
-                    _context3.next = 20
-                    return doRender(
+                case 7:
+                  _context2.next = 13
+                  break
+
+                case 9:
+                  _context2.prev = 9
+                  _context2.t0 = _context2['catch'](4)
+                  _context2.next = 13
+                  return _regeneratorRuntime.awrap(
+                    renderError(
                       (0, _extends2['default'])({}, props, {
-                        err: err,
-                        Component: ErrorComponent,
-                        props: initProps,
+                        err: _context2.t0,
                       })
                     )
+                  )
 
-                  case 20:
-                  case 'end':
-                    return _context3.stop()
-                }
+                case 13:
+                case 'end':
+                  return _context2.stop()
               }
-            }, _callee3)
-          })
+            }
+          },
+          null,
+          null,
+          [[4, 9]]
         )
-        return _renderError.apply(this, arguments)
-      }
+      } // This method handles all runtime and debug errors.
+      // 404 and 500 errors are special kind of errors
+      // and they are still handle via the main render method.
+
+      function renderError(props) {
+        var App, err, AppTree, appCtx, initProps
+        return _regeneratorRuntime.async(function renderError$(_context3) {
+          while (1) {
+            switch ((_context3.prev = _context3.next)) {
+              case 0:
+                ;(App = props.App), (err = props.err) // In development runtime errors are caught by react-error-overlay
+                // In production we catch runtime errors using componentDidCatch which will trigger renderError
+
+                if (true) {
+                  _context3.next = 3
+                  break
+                }
+
+                return _context3.abrupt(
+                  'return',
+                  webpackHMR.reportRuntimeError(webpackHMR.prepareError(err))
+                )
+
+              case 3:
+                if (false) {
+                } // Make sure we log the error to the console, otherwise users can't track down issues.
+
+                console.error(err)
+                _context3.next = 7
+                return _regeneratorRuntime.awrap(pageLoader.loadPage('/_error'))
+
+              case 7:
+                ErrorComponent = _context3.sent
+                // In production we do a normal render with the `ErrorComponent` as component.
+                // If we've gotten here upon initial render, we can use the props from the server.
+                // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+                AppTree = wrapApp(App)
+                appCtx = {
+                  Component: ErrorComponent,
+                  AppTree: AppTree,
+                  router: router,
+                  ctx: {
+                    err: err,
+                    pathname: page,
+                    query: query,
+                    asPath: asPath,
+                    AppTree: AppTree,
+                  },
+                }
+
+                if (!props.props) {
+                  _context3.next = 14
+                  break
+                }
+
+                _context3.t0 = props.props
+                _context3.next = 17
+                break
+
+              case 14:
+                _context3.next = 16
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(App, appCtx)
+                )
+
+              case 16:
+                _context3.t0 = _context3.sent
+
+              case 17:
+                initProps = _context3.t0
+                _context3.next = 20
+                return _regeneratorRuntime.awrap(
+                  doRender(
+                    (0, _extends2['default'])({}, props, {
+                      err: err,
+                      Component: ErrorComponent,
+                      props: initProps,
+                    })
+                  )
+                )
+
+              case 20:
+              case 'end':
+                return _context3.stop()
+            }
+          }
+        })
+      } // If hydrate does not exist, eg in preact.
 
       var isInitialRender = typeof _reactDom['default'].hydrate === 'function'
       var reactRoot = null
@@ -976,8 +881,8 @@
         })
       }
 
-      function AppContainer(_ref5) {
-        var children = _ref5.children
+      function AppContainer(_ref4) {
+        var children = _ref4.children
         return _react['default'].createElement(
           Container,
           {
@@ -1021,109 +926,101 @@
         }
       }
 
-      function doRender(_x4) {
-        return _doRender.apply(this, arguments)
-      }
-
-      function _doRender() {
-        _doRender = (0, _asyncToGenerator2['default'])(
-          /*#__PURE__*/
-          _regeneratorRuntime.mark(function _callee4(_ref6) {
-            var App,
-              Component,
-              props,
-              err,
-              _router2,
-              pathname,
-              _query,
-              _asPath,
-              AppTree,
-              appCtx,
-              appProps,
-              elem
-
-            return _regeneratorRuntime.wrap(function _callee4$(_context4) {
-              while (1) {
-                switch ((_context4.prev = _context4.next)) {
-                  case 0:
-                    ;(App = _ref6.App),
-                      (Component = _ref6.Component),
-                      (props = _ref6.props),
-                      (err = _ref6.err) // Usual getInitialProps fetching is handled in next/router
-                    // this is for when ErrorComponent gets replaced by Component by HMR
-
-                    if (
-                      !(
-                        !props &&
-                        Component &&
-                        Component !== ErrorComponent &&
-                        lastAppProps.Component === ErrorComponent
-                      )
-                    ) {
-                      _context4.next = 8
-                      break
-                    }
+      function doRender(_ref5) {
+        var App,
+          Component,
+          props,
+          err,
+          _router2,
+          pathname,
+          _query,
+          _asPath,
+          AppTree,
+          appCtx,
+          appProps,
+          elem
+
+        return _regeneratorRuntime.async(function doRender$(_context4) {
+          while (1) {
+            switch ((_context4.prev = _context4.next)) {
+              case 0:
+                ;(App = _ref5.App),
+                  (Component = _ref5.Component),
+                  (props = _ref5.props),
+                  (err = _ref5.err) // Usual getInitialProps fetching is handled in next/router
+                // this is for when ErrorComponent gets replaced by Component by HMR
 
-                    ;(_router2 = router),
-                      (pathname = _router2.pathname),
-                      (_query = _router2.query),
-                      (_asPath = _router2.asPath)
-                    AppTree = wrapApp(App)
-                    appCtx = {
-                      router: router,
-                      AppTree: AppTree,
-                      Component: ErrorComponent,
-                      ctx: {
-                        err: err,
-                        pathname: pathname,
-                        query: _query,
-                        asPath: _asPath,
-                        AppTree: AppTree,
-                      },
-                    }
-                    _context4.next = 7
-                    return (0, _utils.loadGetInitialProps)(App, appCtx)
-
-                  case 7:
-                    props = _context4.sent
+                if (
+                  !(
+                    !props &&
+                    Component &&
+                    Component !== ErrorComponent &&
+                    lastAppProps.Component === ErrorComponent
+                  )
+                ) {
+                  _context4.next = 8
+                  break
+                }
 
-                  case 8:
-                    Component = Component || lastAppProps.Component
-                    props = props || lastAppProps.props
-                    appProps = (0, _extends2['default'])({}, props, {
-                      Component: Component,
-                      err: err,
-                      router: router,
-                    }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+                ;(_router2 = router),
+                  (pathname = _router2.pathname),
+                  (_query = _router2.query),
+                  (_asPath = _router2.asPath)
+                AppTree = wrapApp(App)
+                appCtx = {
+                  router: router,
+                  AppTree: AppTree,
+                  Component: ErrorComponent,
+                  ctx: {
+                    err: err,
+                    pathname: pathname,
+                    query: _query,
+                    asPath: _asPath,
+                    AppTree: AppTree,
+                  },
+                }
+                _context4.next = 7
+                return _regeneratorRuntime.awrap(
+                  (0, _utils.loadGetInitialProps)(App, appCtx)
+                )
 
-                    lastAppProps = appProps
-                    emitter.emit('before-reactdom-render', {
-                      Component: Component,
-                      ErrorComponent: ErrorComponent,
-                      appProps: appProps,
-                    })
-                    elem = _react['default'].createElement(
-                      AppContainer,
-                      null,
-                      _react['default'].createElement(App, appProps)
-                    ) // We catch runtime errors using componentDidCatch which will trigger renderError
-
-                    renderReactElement(false ? undefined : elem, appElement)
-                    emitter.emit('after-reactdom-render', {
-                      Component: Component,
-                      ErrorComponent: ErrorComponent,
-                      appProps: appProps,
-                    })
+              case 7:
+                props = _context4.sent
+
+              case 8:
+                Component = Component || lastAppProps.Component
+                props = props || lastAppProps.props
+                appProps = (0, _extends2['default'])({}, props, {
+                  Component: Component,
+                  err: err,
+                  router: router,
+                }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+
+                lastAppProps = appProps
+                emitter.emit('before-reactdom-render', {
+                  Component: Component,
+                  ErrorComponent: ErrorComponent,
+                  appProps: appProps,
+                })
+                elem = _react['default'].createElement(
+                  AppContainer,
+                  null,
+                  _react['default'].createElement(App, appProps)
+                ) // We catch runtime errors using componentDidCatch which will trigger renderError
+
+                renderReactElement(false ? undefined : elem, appElement)
+                emitter.emit('after-reactdom-render', {
+                  Component: Component,
+                  ErrorComponent: ErrorComponent,
+                  appProps: appProps,
+                })
 
-                  case 16:
-                  case 'end':
-                    return _context4.stop()
-                }
-              }
-            }, _callee4)
-          })
-        )
-        return _doRender.apply(this, arguments)
+              case 16:
+              case 'end':
+                return _context4.stop()
+            }
+          }
+        })
       }
 
       /***/
@@ -1175,6 +1072,19 @@
       /***/
     },
 
+    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
+      module.exports = __webpack_require__('UbbE')
+
+      /***/
+    },
+
+    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
+      __webpack_require__('o8NH')
+      module.exports = __webpack_require__('WEpk').Object.assign
+
+      /***/
+    },
+
     /***/ ZDA2: /***/ function(module, exports, __webpack_require__) {
       var _typeof = __webpack_require__('iZP3')
 
@@ -1196,6 +1106,45 @@
       /***/
     },
 
+    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
+      var _Object$assign = __webpack_require__('UXZV')
+
+      function _extends() {
+        module.exports = _extends =
+          _Object$assign ||
+          function(target) {
+            for (var i = 1; i < arguments.length; i++) {
+              var source = arguments[i]
+
+              for (var key in source) {
+                if (Object.prototype.hasOwnProperty.call(source, key)) {
+                  target[key] = source[key]
+                }
+              }
+            }
+
+            return target
+          }
+
+        return _extends.apply(this, arguments)
+      }
+
+      module.exports = _extends
+
+      /***/
+    },
+
+    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
+      // 19.1.3.1 Object.assign(target, source)
+      var $export = __webpack_require__('Y7ZC')
+
+      $export($export.S + $export.F, 'Object', {
+        assign: __webpack_require__('kwZ1'),
+      })
+
+      /***/
+    },
+
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'
Diff for main-HASH.module.js
@@ -1,74 +1,6 @@
 ;(window['webpackJsonp'] = window['webpackJsonp'] || []).push([
   [11],
   {
-    /***/ '+oT+': /***/ function(module, exports, __webpack_require__) {
-      var _Promise = __webpack_require__('eVuF')
-
-      function asyncGeneratorStep(
-        gen,
-        resolve,
-        reject,
-        _next,
-        _throw,
-        key,
-        arg
-      ) {
-        try {
-          var info = gen[key](arg)
-          var value = info.value
-        } catch (error) {
-          reject(error)
-          return
-        }
-
-        if (info.done) {
-          resolve(value)
-        } else {
-          _Promise.resolve(value).then(_next, _throw)
-        }
-      }
-
-      function _asyncToGenerator(fn) {
-        return function() {
-          var self = this,
-            args = arguments
-          return new _Promise(function(resolve, reject) {
-            var gen = fn.apply(self, args)
-
-            function _next(value) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'next',
-                value
-              )
-            }
-
-            function _throw(err) {
-              asyncGeneratorStep(
-                gen,
-                resolve,
-                reject,
-                _next,
-                _throw,
-                'throw',
-                err
-              )
-            }
-
-            _next(undefined)
-          })
-        }
-      }
-
-      module.exports = _asyncToGenerator
-
-      /***/
-    },
-
     /***/ BMP1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -249,10 +181,6 @@
       exports.renderError = renderError
       exports.default = exports.emitter = exports.router = exports.version = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _extends2 = _interopRequireDefault(__webpack_require__('htGi'))
 
       var _interopRequireWildcard2 = _interopRequireDefault(
@@ -411,168 +339,146 @@
       var emitter = (0, _mitt.default)()
       exports.emitter = emitter
 
-      var _default =
-        /*#__PURE__*/
-        (function() {
-          var _ref2 = (0, _asyncToGenerator2.default)(function*(_temp) {
-            var { webpackHMR: passedWebpackHMR } = _temp === void 0 ? {} : _temp // This makes sure this specific lines are removed in production
+      var _default = async function _default(_temp) {
+        var { webpackHMR: passedWebpackHMR } = _temp === void 0 ? {} : _temp // This makes sure this specific lines are removed in production
 
-            if (false) {
-            }
+        if (false) {
+        }
 
-            var { page: app, mod } = yield pageLoader.loadPageScript('/_app')
-            App = app
-
-            if (mod && mod.unstable_onPerformanceData) {
-              onPerfEntry = function onPerfEntry(_ref3) {
-                var { name, startTime, value, duration } = _ref3
-                mod.unstable_onPerformanceData({
-                  name,
-                  startTime,
-                  value,
-                  duration,
-                })
-              }
-            }
+        var { page: app, mod } = await pageLoader.loadPageScript('/_app')
+        App = app
+
+        if (mod && mod.unstable_onPerformanceData) {
+          onPerfEntry = function onPerfEntry(_ref2) {
+            var { name, startTime, value, duration } = _ref2
+            mod.unstable_onPerformanceData({
+              name,
+              startTime,
+              value,
+              duration,
+            })
+          }
+        }
 
-            var initialErr = err
+        var initialErr = err
 
-            try {
-              Component = yield pageLoader.loadPage(page)
+        try {
+          Component = await pageLoader.loadPage(page)
 
-              if (false) {
-                var isValidElementType
-              }
-            } catch (error) {
-              // This catches errors like throwing in the top level of a module
-              initialErr = error
-            }
+          if (false) {
+            var isValidElementType
+          }
+        } catch (error) {
+          // This catches errors like throwing in the top level of a module
+          initialErr = error
+        }
 
-            if (window.__NEXT_PRELOADREADY) {
-              yield window.__NEXT_PRELOADREADY(dynamicIds)
-            }
+        if (window.__NEXT_PRELOADREADY) {
+          await window.__NEXT_PRELOADREADY(dynamicIds)
+        }
 
-            exports.router = router = (0, _router.createRouter)(
-              page,
-              query,
-              asPath,
-              {
-                initialProps: props,
-                pageLoader,
+        exports.router = router = (0, _router.createRouter)(
+          page,
+          query,
+          asPath,
+          {
+            initialProps: props,
+            pageLoader,
+            App,
+            Component,
+            wrapApp,
+            err: initialErr,
+            subscription: (_ref3, App) => {
+              var { Component, props, err } = _ref3
+              render({
                 App,
                 Component,
-                wrapApp,
-                err: initialErr,
-                subscription: (_ref4, App) => {
-                  var { Component, props, err } = _ref4
-                  render({
-                    App,
-                    Component,
-                    props,
-                    err,
-                  })
-                },
-              }
-            ) // call init-client middleware
-
-            if (false) {
-            }
+                props,
+                err,
+              })
+            },
+          }
+        ) // call init-client middleware
 
-            var renderCtx = {
-              App,
-              Component,
-              props,
-              err: initialErr,
-            }
+        if (false) {
+        }
 
-            if (true) {
-              render(renderCtx)
-              return emitter
-            }
+        var renderCtx = {
+          App,
+          Component,
+          props,
+          err: initialErr,
+        }
 
-            if (false) {
-            }
-          })
+        if (true) {
+          render(renderCtx)
+          return emitter
+        }
 
-          return function(_x) {
-            return _ref2.apply(this, arguments)
-          }
-        })()
+        if (false) {
+        }
+      }
 
       exports.default = _default
 
-      function render(_x2) {
-        return _render.apply(this, arguments)
+      async function render(props) {
+        if (props.err) {
+          await renderError(props)
+          return
+        }
+
+        try {
+          await doRender(props)
+        } catch (err) {
+          await renderError(
+            (0, _extends2.default)({}, props, {
+              err,
+            })
+          )
+        }
       } // This method handles all runtime and debug errors.
       // 404 and 500 errors are special kind of errors
       // and they are still handle via the main render method.
 
-      function _render() {
-        _render = (0, _asyncToGenerator2.default)(function*(props) {
-          if (props.err) {
-            yield renderError(props)
-            return
-          }
-
-          try {
-            yield doRender(props)
-          } catch (err) {
-            yield renderError(
-              (0, _extends2.default)({}, props, {
-                err,
-              })
-            )
-          }
-        })
-        return _render.apply(this, arguments)
-      }
-
-      function renderError(_x3) {
-        return _renderError.apply(this, arguments)
-      } // If hydrate does not exist, eg in preact.
-
-      function _renderError() {
-        _renderError = (0, _asyncToGenerator2.default)(function*(props) {
-          var { App, err } = props // In development runtime errors are caught by react-error-overlay
-          // In production we catch runtime errors using componentDidCatch which will trigger renderError
+      async function renderError(props) {
+        var { App, err } = props // In development runtime errors are caught by react-error-overlay
+        // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-          if (false) {
-          }
+        if (false) {
+        }
 
-          if (false) {
-          } // Make sure we log the error to the console, otherwise users can't track down issues.
+        if (false) {
+        } // Make sure we log the error to the console, otherwise users can't track down issues.
 
-          console.error(err)
-          ErrorComponent = yield pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
-          // If we've gotten here upon initial render, we can use the props from the server.
-          // Otherwise, we need to call `getInitialProps` on `App` before mounting.
+        console.error(err)
+        ErrorComponent = await pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
+        // If we've gotten here upon initial render, we can use the props from the server.
+        // Otherwise, we need to call `getInitialProps` on `App` before mounting.
 
-          var AppTree = wrapApp(App)
-          var appCtx = {
-            Component: ErrorComponent,
+        var AppTree = wrapApp(App)
+        var appCtx = {
+          Component: ErrorComponent,
+          AppTree,
+          router,
+          ctx: {
+            err,
+            pathname: page,
+            query,
+            asPath,
             AppTree,
-            router,
-            ctx: {
-              err,
-              pathname: page,
-              query,
-              asPath,
-              AppTree,
-            },
-          }
-          var initProps = props.props
-            ? props.props
-            : yield (0, _utils.loadGetInitialProps)(App, appCtx)
-          yield doRender(
-            (0, _extends2.default)({}, props, {
-              err,
-              Component: ErrorComponent,
-              props: initProps,
-            })
-          )
-        })
-        return _renderError.apply(this, arguments)
-      }
+          },
+        }
+        var initProps = props.props
+          ? props.props
+          : await (0, _utils.loadGetInitialProps)(App, appCtx)
+        await doRender(
+          (0, _extends2.default)({}, props, {
+            err,
+            Component: ErrorComponent,
+            props: initProps,
+          })
+        )
+      } // If hydrate does not exist, eg in preact.
 
       var isInitialRender = typeof _reactDom.default.hydrate === 'function'
       var reactRoot = null
@@ -674,8 +580,8 @@
         ].forEach(measure => performance.clearMeasures(measure))
       }
 
-      function AppContainer(_ref5) {
-        var { children } = _ref5
+      function AppContainer(_ref4) {
+        var { children } = _ref4
         return _react.default.createElement(
           Container,
           {
@@ -714,68 +620,113 @@
         )
       }
 
-      function doRender(_x4) {
-        return _doRender.apply(this, arguments)
+      async function doRender(_ref5) {
+        var { App, Component, props, err } = _ref5 // Usual getInitialProps fetching is handled in next/router
+        // this is for when ErrorComponent gets replaced by Component by HMR
+
+        if (
+          !props &&
+          Component &&
+          Component !== ErrorComponent &&
+          lastAppProps.Component === ErrorComponent
+        ) {
+          var { pathname, query: _query, asPath: _asPath } = router
+          var AppTree = wrapApp(App)
+          var appCtx = {
+            router,
+            AppTree,
+            Component: ErrorComponent,
+            ctx: {
+              err,
+              pathname,
+              query: _query,
+              asPath: _asPath,
+              AppTree,
+            },
+          }
+          props = await (0, _utils.loadGetInitialProps)(App, appCtx)
+        }
+
+        Component = Component || lastAppProps.Component
+        props = props || lastAppProps.props
+        var appProps = (0, _extends2.default)({}, props, {
+          Component,
+          err,
+          router,
+        }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+
+        lastAppProps = appProps
+        emitter.emit('before-reactdom-render', {
+          Component,
+          ErrorComponent,
+          appProps,
+        })
+
+        var elem = _react.default.createElement(
+          AppContainer,
+          null,
+          _react.default.createElement(App, appProps)
+        ) // We catch runtime errors using componentDidCatch which will trigger renderError
+
+        renderReactElement(false ? undefined : elem, appElement)
+        emitter.emit('after-reactdom-render', {
+          Component,
+          ErrorComponent,
+          appProps,
+        })
       }
 
-      function _doRender() {
-        _doRender = (0, _asyncToGenerator2.default)(function*(_ref6) {
-          var { App, Component, props, err } = _ref6 // Usual getInitialProps fetching is handled in next/router
-          // this is for when ErrorComponent gets replaced by Component by HMR
+      /***/
+    },
 
-          if (
-            !props &&
-            Component &&
-            Component !== ErrorComponent &&
-            lastAppProps.Component === ErrorComponent
-          ) {
-            var { pathname, query: _query, asPath: _asPath } = router
-            var AppTree = wrapApp(App)
-            var appCtx = {
-              router,
-              AppTree,
-              Component: ErrorComponent,
-              ctx: {
-                err,
-                pathname,
-                query: _query,
-                asPath: _asPath,
-                AppTree,
-              },
+    /***/ UXZV: /***/ function(module, exports, __webpack_require__) {
+      module.exports = __webpack_require__('UbbE')
+
+      /***/
+    },
+
+    /***/ UbbE: /***/ function(module, exports, __webpack_require__) {
+      __webpack_require__('o8NH')
+      module.exports = __webpack_require__('WEpk').Object.assign
+
+      /***/
+    },
+
+    /***/ htGi: /***/ function(module, exports, __webpack_require__) {
+      var _Object$assign = __webpack_require__('UXZV')
+
+      function _extends() {
+        module.exports = _extends =
+          _Object$assign ||
+          function(target) {
+            for (var i = 1; i < arguments.length; i++) {
+              var source = arguments[i]
+
+              for (var key in source) {
+                if (Object.prototype.hasOwnProperty.call(source, key)) {
+                  target[key] = source[key]
+                }
+              }
             }
-            props = yield (0, _utils.loadGetInitialProps)(App, appCtx)
+
+            return target
           }
 
-          Component = Component || lastAppProps.Component
-          props = props || lastAppProps.props
-          var appProps = (0, _extends2.default)({}, props, {
-            Component,
-            err,
-            router,
-          }) // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.
+        return _extends.apply(this, arguments)
+      }
 
-          lastAppProps = appProps
-          emitter.emit('before-reactdom-render', {
-            Component,
-            ErrorComponent,
-            appProps,
-          })
+      module.exports = _extends
 
-          var elem = _react.default.createElement(
-            AppContainer,
-            null,
-            _react.default.createElement(App, appProps)
-          ) // We catch runtime errors using componentDidCatch which will trigger renderError
+      /***/
+    },
 
-          renderReactElement(false ? undefined : elem, appElement)
-          emitter.emit('after-reactdom-render', {
-            Component,
-            ErrorComponent,
-            appProps,
-          })
-        })
-        return _doRender.apply(this, arguments)
-      }
+    /***/ o8NH: /***/ function(module, exports, __webpack_require__) {
+      // 19.1.3.1 Object.assign(target, source)
+      var $export = __webpack_require__('Y7ZC')
+
+      $export($export.S + $export.F, 'Object', {
+        assign: __webpack_require__('kwZ1'),
+      })
 
       /***/
     },
Diff for index.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -156,25 +156,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      href="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.ec662d47cc68363fbfd2.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.7f8e4c92f1de3035c8ae.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a5d6ed9e0e714ee91f9d.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.90fd5fa01287552151d3.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-642e244404b1375c2067.js"
+      src="/_next/static/runtime/main-fd9f9416cf35d1e659e7.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-140728fcb725a5503dad.module.js"
+      src="/_next/static/runtime/main-5d0a764ef20248bac4f7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
buildDuration 12.5s 12.7s ⚠️ +175ms
nodeModulesSize 48.9 MB 48.8 MB -2.09 kB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.js gzip 5.12 kB 5.1 kB -16 B
webpack-HASH.js gzip 746 B 746 B
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB
commons.HASH.js gzip 4.06 kB 4.06 kB
de003c3a9d30..d6b9.js gzip 16.3 kB N/A N/A
framework.HASH.js gzip 39.1 kB 39.1 kB
de003c3a9d30..d57b.js gzip N/A 16.1 kB N/A
Overall change 70 kB 69.8 kB -16 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
main-HASH.module.js gzip 4.15 kB 4.1 kB -52 B
webpack-HASH..dule.js gzip 746 B 746 B
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB
de003c3a9d30..dule.js gzip 15.1 kB N/A N/A
framework.HA..dule.js gzip 39.1 kB 39.1 kB
de003c3a9d30..dule.js gzip N/A 15 kB N/A
Overall change 64.7 kB 64.5 kB -52 B
Legacy Client Bundles (polyfills)
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB
Overall change 4.76 kB 4.76 kB
Client Pages Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.js gzip 1.34 kB 1.15 kB -190 B
_error.js gzip 4.07 kB 4.07 kB
hooks.js gzip 779 B 779 B
index.js gzip 222 B 222 B
link.js gzip 2.89 kB 2.89 kB
routerDirect.js gzip 283 B 283 B
withRouter.js gzip 282 B 282 B
Overall change 9.87 kB 9.68 kB -190 B
Client Pages Modern Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_app.module.js gzip 769 B 576 B -193 B
_error.module.js gzip 3.06 kB 3.06 kB
hooks.module.js gzip 371 B 371 B
index.module.js gzip 212 B 212 B
link.module.js gzip 2.46 kB 2.46 kB
routerDirect..dule.js gzip 273 B 273 B
withRouter.m..dule.js gzip 272 B 272 B
Overall change 7.42 kB 7.22 kB -193 B
Client Build Manifests
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall decrease ✓
zeit/next.js canary timneutkens/next.js fix/disable-core-js-next-core Change
_error.js gzip 60.5 kB 46.2 kB -14.3 kB
hooks.html gzip 1.06 kB 1.05 kB -1 B
index.js gzip 60.9 kB 46.4 kB -14.5 kB
link.js gzip 77.8 kB 71.9 kB -5.94 kB
routerDirect.js gzip 75.9 kB 69.9 kB -5.96 kB
withRouter.js gzip 75.9 kB 69.9 kB -5.96 kB
Overall change 352 kB 305 kB -46.7 kB

Commit: 2024296

@timneutkens timneutkens merged commit 6988a2e into vercel:canary Jan 22, 2020
@timneutkens timneutkens deleted the fix/disable-core-js-next-core branch January 22, 2020 15:24
@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants