From def81239cbee25ed4c0b210be7748a4ab6ad44ee Mon Sep 17 00:00:00 2001 From: josephsavona Date: Thu, 2 Oct 2025 09:54:37 -0700 Subject: [PATCH] [compiler] enablePreserveMemo treats manual deps as non-nullable (#34503) The `@enablePreserveExistingMemoizationGuarantees` mode can still fail to preserve manual memoization due to mismtached dependencies. Specifically, where the user's dependencies are more precise than the compiler infers bc the compiler is being conservative about what might be nullable. In this mode though we're intentionally using information from the manual memoization and can also rely on the deps as a signal for what's non-nullable. The idea of the PR is that we treat manual memo deps just like other inferred-as-non-nullable objects during PropagateScopeDeps. We're careful to not treat the full path as non-nullable, only up to the last property index. So `x.y.z` as a manual dep treats `x` and `x.y` as non-nullable, allowing us to preserve a conditional dependency on `x.y.z`. Optionals within manual dependencies are a bit trickier and aren't handled yet, but hopefully that's less common and something we can improve in a follow-up. Not handling them just means that developers may hit false positives on validating existing memoization if they use optional chains in manual dependencies. --- [//]: # (BEGIN SAPLING FOOTER) Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/react/pull/34503). * #34689 * __->__ #34503 DiffTrain build for [57d5a59748bbec1b507bb778c9fbe4bcb82b0a94](https://github.com/facebook/react/commit/57d5a59748bbec1b507bb778c9fbe4bcb82b0a94) --- compiled-rn/VERSION_NATIVE_FB | 2 +- .../react/react-dom/cjs/ReactDOM-dev.js | 4 +-- .../react/react-dom/cjs/ReactDOM-prod.js | 4 +-- .../react/react-dom/cjs/ReactDOM-profiling.js | 4 +-- .../react/react-dom/cjs/ReactDOMClient-dev.js | 12 ++++----- .../react-dom/cjs/ReactDOMClient-prod.js | 12 ++++----- .../react-dom/cjs/ReactDOMClient-profiling.js | 12 ++++----- .../react-dom/cjs/ReactDOMProfiling-dev.js | 12 ++++----- .../react-dom/cjs/ReactDOMProfiling-prod.js | 12 ++++----- .../cjs/ReactDOMProfiling-profiling.js | 12 ++++----- .../cjs/ReactTestRenderer-dev.js | 8 +++--- .../cjs/ReactTestRenderer-prod.js | 8 +++--- .../cjs/ReactTestRenderer-profiling.js | 8 +++--- .../vendor/react/react/cjs/React-dev.js | 4 +-- .../vendor/react/react/cjs/React-prod.js | 4 +-- .../vendor/react/react/cjs/React-profiling.js | 4 +-- .../Libraries/Renderer/REVISION | 2 +- .../implementations/ReactFabric-dev.fb.js | 6 ++--- .../implementations/ReactFabric-prod.fb.js | 6 ++--- .../ReactFabric-profiling.fb.js | 6 ++--- .../ReactNativeRenderer-dev.fb.js | 10 ++++---- .../ReactNativeRenderer-prod.fb.js | 10 ++++---- .../ReactNativeRenderer-profiling.fb.js | 10 ++++---- .../eslint-plugin-react-hooks.development.js | 25 ++++++++++++++++++- .../eslint-plugin-react-hooks.production.js | 25 ++++++++++++++++++- .../eslint-plugin-react-hooks/package.json | 2 +- 26 files changed, 135 insertions(+), 89 deletions(-) diff --git a/compiled-rn/VERSION_NATIVE_FB b/compiled-rn/VERSION_NATIVE_FB index f950de5445..3d51b180ae 100644 --- a/compiled-rn/VERSION_NATIVE_FB +++ b/compiled-rn/VERSION_NATIVE_FB @@ -1 +1 @@ -19.2.0-native-fb-ae74234e-20251001 \ No newline at end of file +19.3.0-native-fb-57d5a597-20251002 \ No newline at end of file diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js index 1e71161c0f..6f11ad0fd0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<8c7bbb1b7da61fe0c31aa4bc3d973f31>> + * @generated SignedSource<<44a58f1c25f5d340803e6a2f02d44d58>> */ "use strict"; @@ -404,5 +404,5 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-ae74234e-20251001"; + exports.version = "19.3.0-native-fb-57d5a597-20251002"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js index be7c30c9cf..08194a4498 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js index be7c30c9cf..08194a4498 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js index 1f1165b480..67b8dcadca 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<0cceebe14b823fb2b4a752c96f542990>> + * @generated SignedSource<<91b00c527532a1488188e3b7fba59e1d>> */ /* @@ -30061,11 +30061,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-ae74234e-20251001" !== isomorphicReactPackageVersion) + if ("19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-native-fb-ae74234e-20251001\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-native-fb-57d5a597-20251002\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30102,10 +30102,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30255,5 +30255,5 @@ __DEV__ && listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-native-fb-ae74234e-20251001"; + exports.version = "19.3.0-native-fb-57d5a597-20251002"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js index 6a72405285..78cc0cf364 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<11b6ad11c4ce1326f6620ffcd53ce388>> */ /* @@ -17578,14 +17578,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2059 = React.version; if ( - "19.2.0-native-fb-ae74234e-20251001" !== + "19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion$jscomp$inline_2059 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2059, - "19.2.0-native-fb-ae74234e-20251001" + "19.3.0-native-fb-57d5a597-20251002" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17607,10 +17607,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2636 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2637 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17717,4 +17717,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js index 8f0315da8b..56745219ca 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<4887fd747289f8cd1f3cb68a2b04b490>> + * @generated SignedSource<<3f4913ddb2ace3afebef375803f9c060>> */ /* @@ -19716,14 +19716,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2374 = React.version; if ( - "19.2.0-native-fb-ae74234e-20251001" !== + "19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion$jscomp$inline_2374 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2374, - "19.2.0-native-fb-ae74234e-20251001" + "19.3.0-native-fb-57d5a597-20251002" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19745,10 +19745,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2381 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001", + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$331 = 0; @@ -19871,4 +19871,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js index f970ebc434..d1ce32683d 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<135c96374256ecad4d89ffdf56a29046>> + * @generated SignedSource<> */ /* @@ -30117,11 +30117,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-ae74234e-20251001" !== isomorphicReactPackageVersion) + if ("19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-native-fb-ae74234e-20251001\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.3.0-native-fb-57d5a597-20251002\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30158,10 +30158,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30627,7 +30627,7 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-ae74234e-20251001"; + exports.version = "19.3.0-native-fb-57d5a597-20251002"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js index 8584eb6a7c..885c4f79f9 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<4ff8a16c21a2635e6f0d627adcfbccdf>> */ /* @@ -17589,14 +17589,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2060 = React.version; if ( - "19.2.0-native-fb-ae74234e-20251001" !== + "19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion$jscomp$inline_2060 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2060, - "19.2.0-native-fb-ae74234e-20251001" + "19.3.0-native-fb-57d5a597-20251002" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17618,10 +17618,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2639 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2640 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17881,4 +17881,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js index 8e28413216..a3678869f5 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<489a3a3e0993130a45f60933bdd9d15c>> + * @generated SignedSource<<270cae553112e9c9d9146f1123e105ca>> */ /* @@ -19731,14 +19731,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2375 = React.version; if ( - "19.2.0-native-fb-ae74234e-20251001" !== + "19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion$jscomp$inline_2375 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2375, - "19.2.0-native-fb-ae74234e-20251001" + "19.3.0-native-fb-57d5a597-20251002" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19760,10 +19760,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2382 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001", + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$331 = 0; @@ -20039,7 +20039,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js index 048a9904d4..7042ead182 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<251d34dcdebe289775774e7a2df6435c>> */ "use strict"; @@ -16015,10 +16015,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -16164,5 +16164,5 @@ __DEV__ && flushSyncWorkAcrossRoots_impl(0, !0)); } }; - exports.version = "19.2.0-native-fb-ae74234e-20251001"; + exports.version = "19.3.0-native-fb-57d5a597-20251002"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js index e6bd0a3d92..18925f2aec 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<03ad6ea3a34dce1d8fa98b6c84f5c7a3>> + * @generated SignedSource<> */ "use strict"; @@ -10105,10 +10105,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1493 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1494 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -10244,4 +10244,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js index 38ddeeb670..30bf09e56d 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<39f32fe6717f5373e46bbe889d2ca34c>> */ "use strict"; @@ -10726,10 +10726,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1274 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001", + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$146 = 0; @@ -10880,4 +10880,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js index 4021fde9bf..d82d1af104 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<5e3dded7362938ca3a72148a619fc428>> */ "use strict"; @@ -1400,7 +1400,7 @@ __DEV__ && exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-native-fb-ae74234e-20251001"; + exports.version = "19.3.0-native-fb-57d5a597-20251002"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js index 8586c08180..81cfed816f 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<16b2ff731d2eceea947e1a48153233f2>> + * @generated SignedSource<> */ "use strict"; @@ -583,4 +583,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js index 42b7b7dfc4..28af936c14 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<8f65edb3746087712c6419a65abf92fa>> + * @generated SignedSource<> */ "use strict"; @@ -587,7 +587,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-ae74234e-20251001"; +exports.version = "19.3.0-native-fb-57d5a597-20251002"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION index 79690d8143..1d9a514812 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION @@ -1 +1 @@ -ae74234eae6ebd62f19190731278e20bc1c37d51 +57d5a59748bbec1b507bb778c9fbe4bcb82b0a94 diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js index 3c5c505255..5fcc1046e9 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<21de229c2d24330ed7ac7f8f8eb97816>> + * @generated SignedSource<<8f7e0621669d8574bc34114f4dcae5ab>> */ "use strict"; @@ -20000,10 +20000,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js index 5228bc716c..dbcc829abb 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<08c282447d344ae2a4949e597bafec62>> + * @generated SignedSource<<7b701df91bd9a7d9c07d48d987347a03>> */ "use strict"; @@ -11256,10 +11256,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1319 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1319.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js index 5542182f44..60f2baa9ad 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -13320,10 +13320,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1627 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1627.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js index 0602d8eb71..564f693db0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<8752b3aa66c6db91bba68e58948d3ada>> */ "use strict"; @@ -20292,11 +20292,11 @@ __DEV__ && shouldSuspendImpl = newShouldSuspendImpl; }; var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-ae74234e-20251001" !== isomorphicReactPackageVersion) + if ("19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-native-renderer: 19.2.0-native-fb-ae74234e-20251001\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.3.0-native-fb-57d5a597-20251002\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -20322,10 +20322,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js index 3d7b87553b..59479df65c 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<1386a6ce5628fdb9e782444d18739cfe>> + * @generated SignedSource<<3acc34d687ab36dfb78628d9d57e5b97>> */ "use strict"; @@ -11426,11 +11426,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-ae74234e-20251001" !== isomorphicReactPackageVersion) +if ("19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-native-renderer: 19.2.0-native-fb-ae74234e-20251001\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.3.0-native-fb-57d5a597-20251002\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -11480,10 +11480,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1326 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1326.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js index 73461c41a7..682a648d2e 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<97a101ade0837f50cca4a97dbc11cc5c>> + * @generated SignedSource<<29d6a3eb2ca5756a51596aeddd5d748f>> */ "use strict"; @@ -13483,11 +13483,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-ae74234e-20251001" !== isomorphicReactPackageVersion) +if ("19.3.0-native-fb-57d5a597-20251002" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-native-renderer: 19.2.0-native-fb-ae74234e-20251001\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.3.0-native-fb-57d5a597-20251002\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -13537,10 +13537,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1634 = { bundleType: 0, - version: "19.2.0-native-fb-ae74234e-20251001", + version: "19.3.0-native-fb-57d5a597-20251002", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-ae74234e-20251001" + reconcilerVersion: "19.3.0-native-fb-57d5a597-20251002" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1634.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js index adae9d6f3f..61f05efb65 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js @@ -12,7 +12,7 @@ * @lightSyntaxTransform * @preventMunge * @oncall react_core - * @generated SignedSource<<601189980998463aafddff88451ac0c2>> + * @generated SignedSource<> */ 'use strict'; @@ -45364,6 +45364,29 @@ function collectNonNullsInBlocks(fn, context) { } } } + else if (fn.env.config.enablePreserveExistingMemoizationGuarantees && + instr.value.kind === 'StartMemoize' && + instr.value.deps != null) { + for (const dep of instr.value.deps) { + if (dep.root.kind === 'NamedLocal') { + if (!isImmutableAtInstr(dep.root.value.identifier, instr.id, context)) { + continue; + } + for (let i = 0; i < dep.path.length; i++) { + const pathEntry = dep.path[i]; + if (pathEntry.optional) { + break; + } + const depNode = context.registry.getOrCreateProperty({ + identifier: dep.root.value.identifier, + path: dep.path.slice(0, i), + reactive: dep.root.value.reactive, + }); + assumedNonNullObjects.add(depNode); + } + } + } + } } nodes.set(block.id, { block, diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js index 625b0dd9bc..18e93d89d0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * @generated SignedSource<> + * @generated SignedSource<> */ 'use strict'; @@ -45143,6 +45143,29 @@ function collectNonNullsInBlocks(fn, context) { } } } + else if (fn.env.config.enablePreserveExistingMemoizationGuarantees && + instr.value.kind === 'StartMemoize' && + instr.value.deps != null) { + for (const dep of instr.value.deps) { + if (dep.root.kind === 'NamedLocal') { + if (!isImmutableAtInstr(dep.root.value.identifier, instr.id, context)) { + continue; + } + for (let i = 0; i < dep.path.length; i++) { + const pathEntry = dep.path[i]; + if (pathEntry.optional) { + break; + } + const depNode = context.registry.getOrCreateProperty({ + identifier: dep.root.value.identifier, + path: dep.path.slice(0, i), + reactive: dep.root.value.reactive, + }); + assumedNonNullObjects.add(depNode); + } + } + } + } } nodes.set(block.id, { block, diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json index 309a024aae..c124f38a32 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json @@ -1,7 +1,7 @@ { "name": "eslint-plugin-react-hooks", "description": "ESLint rules for React Hooks", - "version": "0.0.0-experimental-ae74234e-20251001", + "version": "0.0.0-experimental-57d5a597-20251002", "repository": { "type": "git", "url": "https://github.com/facebook/react.git",