From 515c9d5529e85d1be993cfd5895084a48b4af253 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 31 Oct 2023 00:23:01 +0000 Subject: [PATCH] Don't compile Hermes-supported features with Babel (#1773) * Don't transpile Hermes-supported features * Disable the object spread plugin We're using Hermes, and Hermes supports object spread. We can remove this patch when we upgrade Expo because it'll be conditional there. --- babel.config.js | 3 +++ patches/babel-preset-expo+9.5.2.patch | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 patches/babel-preset-expo+9.5.2.patch diff --git a/babel.config.js b/babel.config.js index 0baec0c3c6..78edf57499 100644 --- a/babel.config.js +++ b/babel.config.js @@ -8,6 +8,9 @@ module.exports = function (api) { { lazyImports: true, native: { + // We should be able to remove this after upgrading Expo + // to a version that includes https://github.com/expo/expo/pull/24672. + unstable_transformProfile: 'hermes-stable', // Disable ESM -> CJS compilation because Metro takes care of it. // However, we need it in Jest tests since those run without Metro. disableImportExportTransform: !isTestEnv, diff --git a/patches/babel-preset-expo+9.5.2.patch b/patches/babel-preset-expo+9.5.2.patch new file mode 100644 index 0000000000..5e328c2243 --- /dev/null +++ b/patches/babel-preset-expo+9.5.2.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/babel-preset-expo/index.js b/node_modules/babel-preset-expo/index.js +index 2099ee3..2b9e092 100644 +--- a/node_modules/babel-preset-expo/index.js ++++ b/node_modules/babel-preset-expo/index.js +@@ -105,7 +105,8 @@ module.exports = function (api, options = {}) { + ], + ], + plugins: [ +- getObjectRestSpreadPlugin(), ++ // - dan: This will be disabled anyway when we upgrade Expo, but let's do it now. ++ // getObjectRestSpreadPlugin(), + ...extraPlugins, + getAliasPlugin(), + [require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }],