From 6988a2e0a567bc78bd339ae4efbbb35a4311621f Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 22 Jan 2020 16:24:02 +0100 Subject: [PATCH] Use builtins for React transform (#10207) * Disable core-js on Next.js core files as it's not transforming anything important * Move babel options to taskr plugin * Disable transform-runtime for pages dir * Disable correctly * Disable corejs for core files * Temporarily check if this fixes the error * Use builtIns and exclude async-to-generator * Update index.test.js --- packages/next/client/router.ts | 2 +- packages/next/taskfile-babel.js | 11 ++++++++--- test/integration/size-limit/test/index.test.js | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/next/client/router.ts b/packages/next/client/router.ts index 32da8433124f..41d4dad46af9 100644 --- a/packages/next/client/router.ts +++ b/packages/next/client/router.ts @@ -138,7 +138,7 @@ export function makePublicRouterInstance(router: Router): NextRouter { for (const property of urlPropertyFields) { if (typeof _router[property] === 'object') { - instance[property] = { ..._router[property] } // makes sure query is not stateful + instance[property] = Object.assign({}, _router[property]) // makes sure query is not stateful continue } diff --git a/packages/next/taskfile-babel.js b/packages/next/taskfile-babel.js index 0036821f8abb..d31ced3d8bde 100644 --- a/packages/next/taskfile-babel.js +++ b/packages/next/taskfile-babel.js @@ -15,10 +15,15 @@ const babelClientOpts = { esmodules: true, }, loose: true, - exclude: ['transform-typeof-symbol'], + // This is handled by the Next.js webpack config that will run next/babel over the same code. + exclude: [ + 'transform-typeof-symbol', + 'transform-async-to-generator', + 'transform-spread', + ], }, ], - '@babel/preset-react', + ['@babel/preset-react', { useBuiltIns: true }], ], plugins: [ // workaround for @taskr/esnext bug replacing `-import` with `-require(` @@ -31,7 +36,7 @@ const babelClientOpts = { const babelServerOpts = { presets: [ '@babel/preset-typescript', - '@babel/preset-react', + ['@babel/preset-react', { useBuiltIns: true }], [ '@babel/preset-env', { diff --git a/test/integration/size-limit/test/index.test.js b/test/integration/size-limit/test/index.test.js index 70fd0d332d00..caedbdff0ec7 100644 --- a/test/integration/size-limit/test/index.test.js +++ b/test/integration/size-limit/test/index.test.js @@ -81,7 +81,7 @@ describe('Production response size', () => { ) // These numbers are without gzip compression! - const delta = responseSizeKilobytes - 235 + const delta = responseSizeKilobytes - 233 expect(delta).toBeLessThanOrEqual(0) // don't increase size expect(delta).toBeGreaterThanOrEqual(-1) // don't decrease size without updating target }) @@ -101,7 +101,7 @@ describe('Production response size', () => { ) // These numbers are without gzip compression! - const delta = responseSizeKilobytes - 203 + const delta = responseSizeKilobytes - 202 expect(delta).toBeLessThanOrEqual(0) // don't increase size expect(delta).toBeGreaterThanOrEqual(-1) // don't decrease size without updating target })