about summary refs log tree commit diff
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2023-10-31 00:23:01 +0000
committerGitHub <noreply@github.com>2023-10-31 00:23:01 +0000
commit515c9d5529e85d1be993cfd5895084a48b4af253 (patch)
tree7014b9f3cfd2d6d626fd8841cce16b17d6b3e886
parente1dcedd87e104ab38baf29420ddcb940cab83711 (diff)
downloadvoidsky-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.js3
-rw-r--r--patches/babel-preset-expo+9.5.2.patch14
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 }],