diff options
author | dan <dan.abramov@gmail.com> | 2023-10-31 00:23:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-31 00:23:01 +0000 |
commit | 515c9d5529e85d1be993cfd5895084a48b4af253 (patch) | |
tree | 7014b9f3cfd2d6d626fd8841cce16b17d6b3e886 | |
parent | e1dcedd87e104ab38baf29420ddcb940cab83711 (diff) | |
download | voidsky-515c9d5529e85d1be993cfd5895084a48b4af253.tar.zst |
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.
-rw-r--r-- | babel.config.js | 3 | ||||
-rw-r--r-- | patches/babel-preset-expo+9.5.2.patch | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/babel.config.js b/babel.config.js index 0baec0c3c..78edf5749 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 000000000..5e328c224 --- /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 }], |