From 15a94f20f778afb9c58a024fca96a22fa9294df0 Mon Sep 17 00:00:00 2001 From: Tomek Zawadzki Date: Fri, 21 Aug 2026 13:05:50 +0200 Subject: [PATCH] Reland "Bump React Compiler to stable 1.0.0" (#11450) This reverts commit a6c728c9db6c14d1e3d6dc7de4c57a519c5524dd. The revert (#11512) was made because the bump was the likely root cause of a "Tried to synchronously call a Remote Function" crash. That crash class was fixed independently in #11517: the compiler outlines capture-free shared value updaters like sv.set(() => withSpring(...)) to module-scope functions that the worklets plugin does not workletize, so a worklet capturing one gets a remote function and Reanimated's synchronous updater call is fatal on the UI runtime. All 25 call sites now pass the animation directly, so there is nothing left to outline. Verified by compiling every worklet-using file in src/ with the project Babel config under compiler 1.0.0 and scanning worklet __closure entries for un-workletized module-scope functions: none are called directly or passed to .set() (the remaining hits are only passed to scheduleOnRN, which is what remote functions are for). Co-Authored-By: Claude Opus 5 (1M context) --- package.json | 4 ++-- pnpm-lock.yaml | 21 +++++++-------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index ca65023b7d..3ae22dc51a 100644 --- a/package.json +++ b/package.json @@ -223,7 +223,7 @@ "psl": "1.9.0", "radix-ui": "^1.4.3", "react": "19.2.3", - "react-compiler-runtime": "19.1.0-rc.3", + "react-compiler-runtime": "1.0.0", "react-dom": "19.2.3", "react-hotkeys-hook": "5.2.4", "react-image-crop": "^11.0.7", @@ -288,7 +288,7 @@ "@typescript/native": "npm:typescript@^7.0.2", "babel-jest": "^29.7.0", "babel-plugin-module-resolver": "^5.0.2", - "babel-plugin-react-compiler": "19.1.0-rc.3", + "babel-plugin-react-compiler": "1.0.0", "babel-preset-expo": "~57.0.4", "eslint-plugin-bsky-internal": "link:lint-rules", "eslint-plugin-react-native-a11y": "^3.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2b423f16d..86133a02ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -612,8 +612,8 @@ importers: specifier: 19.2.3 version: 19.2.3 react-compiler-runtime: - specifier: 19.1.0-rc.3 - version: 19.1.0-rc.3(react@19.2.3) + specifier: 1.0.0 + version: 1.0.0(react@19.2.3) react-dom: specifier: 19.2.3 version: 19.2.3(react@19.2.3) @@ -802,8 +802,8 @@ importers: specifier: ^5.0.2 version: 5.0.3 babel-plugin-react-compiler: - specifier: 19.1.0-rc.3 - version: 19.1.0-rc.3 + specifier: 1.0.0 + version: 1.0.0 babel-preset-expo: specifier: ~57.0.4 version: 57.0.7(@babel/core@7.29.0(supports-color@8.1.1))(@babel/runtime@7.29.2)(expo@57.0.8)(react-refresh@0.14.2)(supports-color@8.1.1) @@ -4452,9 +4452,6 @@ packages: babel-plugin-react-compiler@1.0.0: resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - babel-plugin-react-compiler@19.1.0-rc.3: - resolution: {integrity: sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA==} - babel-plugin-react-native-web@0.21.2: resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} @@ -8124,8 +8121,8 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-compiler-runtime@19.1.0-rc.3: - resolution: {integrity: sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==} + react-compiler-runtime@1.0.0: + resolution: {integrity: sha512-rRfjYv66HlG8896yPUDONgKzG5BxZD1nV9U6rkm+7VCuvQc903C4MjcoZR4zPw53IKSOX9wMQVpA1IAbRtzQ7w==} peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental @@ -13901,10 +13898,6 @@ snapshots: dependencies: '@babel/types': 7.29.0 - babel-plugin-react-compiler@19.1.0-rc.3: - dependencies: - '@babel/types': 7.29.0 - babel-plugin-react-native-web@0.21.2: {} babel-plugin-syntax-hermes-parser@0.36.0: @@ -18139,7 +18132,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-compiler-runtime@19.1.0-rc.3(react@19.2.3): + react-compiler-runtime@1.0.0(react@19.2.3): dependencies: react: 19.2.3