From 263abf8d70ec6c3d8780853e9b268a2d3ef125ee Mon Sep 17 00:00:00 2001 From: josephsavona Date: Tue, 29 Jul 2025 10:05:50 -0700 Subject: [PATCH] [compiler] Fixes to enableTreatRefLikeIdentifiersAsRefs (#34000) We added the `@enableTreatRefLikeIdentifiersAsRefs` feature a while back but never enabled it. Since then we've continued to see examples that motivate this mode, so here we're fixing it up to prepare to enable by default. It now works as follows: * If we find a property load or property store where both a) the object's name is ref-like (`ref` or `-Ref`) and b) the property is `current`, we infer the object itself as a ref and the value of the property as a ref value. Originally the feature only detected property loads, not stores. * Inferred refs are not considered stable (this is a change from the original implementation). The only way to get a stable ref is by calling `useRef()`. We've seen issues with assuming refs are stable. With this change, cases like the following now correctly error: ```js function Foo(props) { const fooRef = props.fooRef; fooRef.current = true; ^^^^^^^^^^^^^^ cannot modify ref in render } ``` --- [//]: # (BEGIN SAPLING FOOTER) Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/react/pull/34000). * #34027 * #34026 * #34025 * #34024 * #34005 * #34006 * #34004 * #34003 * __->__ #34000 DiffTrain build for [85bbe39ef8e24a192b5e9f2987b1babf8ce772e1](https://github.com/facebook/react/commit/85bbe39ef8e24a192b5e9f2987b1babf8ce772e1) --- 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 | 22 ++++++++++++------- .../eslint-plugin-react-hooks.production.js | 22 ++++++++++++------- .../eslint-plugin-react-hooks/package.json | 2 +- 26 files changed, 115 insertions(+), 103 deletions(-) diff --git a/compiled-rn/VERSION_NATIVE_FB b/compiled-rn/VERSION_NATIVE_FB index e1a05b8815..c594342560 100644 --- a/compiled-rn/VERSION_NATIVE_FB +++ b/compiled-rn/VERSION_NATIVE_FB @@ -1 +1 @@ -19.2.0-native-fb-820af209-20250729 \ No newline at end of file +19.2.0-native-fb-85bbe39e-20250729 \ 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 9480a3680d..891a196cbf 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<> + * @generated SignedSource<<8309c6f6204dc58642f11648d3aa0a80>> */ "use strict"; @@ -404,5 +404,5 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-820af209-20250729"; + exports.version = "19.2.0-native-fb-85bbe39e-20250729"; })(); 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 33841c6acc..a21ba83ae5 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<<46937cfe16e9375fcbab25ac47ade8fa>> + * @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-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 33841c6acc..a21ba83ae5 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<<46937cfe16e9375fcbab25ac47ade8fa>> + * @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-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 d6d1362fd8..30d5dc4d81 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<<91d9be576ed43f59bff4948bc07117cd>> + * @generated SignedSource<> */ /* @@ -29025,11 +29025,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-820af209-20250729" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-85bbe39e-20250729" !== 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-820af209-20250729\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-native-fb-85bbe39e-20250729\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -29066,10 +29066,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -29207,5 +29207,5 @@ __DEV__ && listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-native-fb-820af209-20250729"; + exports.version = "19.2.0-native-fb-85bbe39e-20250729"; })(); 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 9da6c2745a..0dbe4661b9 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<<3e01d9d8dfe70d003aabdbd917c652f1>> */ /* @@ -17128,14 +17128,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2002 = React.version; if ( - "19.2.0-native-fb-820af209-20250729" !== + "19.2.0-native-fb-85bbe39e-20250729" !== isomorphicReactPackageVersion$jscomp$inline_2002 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2002, - "19.2.0-native-fb-820af209-20250729" + "19.2.0-native-fb-85bbe39e-20250729" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17157,10 +17157,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2521 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2522 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17258,4 +17258,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 dc25535cea..55b109b80f 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<<5980f6f5028e7c9045cdca30e9cafb43>> + * @generated SignedSource<<0bb697ac6752af2d62713e28025820ad>> */ /* @@ -19086,14 +19086,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2242 = React.version; if ( - "19.2.0-native-fb-820af209-20250729" !== + "19.2.0-native-fb-85bbe39e-20250729" !== isomorphicReactPackageVersion$jscomp$inline_2242 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2242, - "19.2.0-native-fb-820af209-20250729" + "19.2.0-native-fb-85bbe39e-20250729" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19115,10 +19115,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2249 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729", + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$319 = 0; @@ -19231,4 +19231,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 d5045d9c94..04a37558ad 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<> + * @generated SignedSource<<042e52f96fa5db2d4229f53a3c16cce1>> */ /* @@ -29081,11 +29081,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-820af209-20250729" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-85bbe39e-20250729" !== 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-820af209-20250729\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-native-fb-85bbe39e-20250729\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -29122,10 +29122,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -29579,7 +29579,7 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-820af209-20250729"; + exports.version = "19.2.0-native-fb-85bbe39e-20250729"; "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 52861b1182..5982506beb 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<<8057e42a1ec2c22c5081229d0e39d384>> + * @generated SignedSource<> */ /* @@ -17139,14 +17139,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2003 = React.version; if ( - "19.2.0-native-fb-820af209-20250729" !== + "19.2.0-native-fb-85bbe39e-20250729" !== isomorphicReactPackageVersion$jscomp$inline_2003 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2003, - "19.2.0-native-fb-820af209-20250729" + "19.2.0-native-fb-85bbe39e-20250729" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17168,10 +17168,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2524 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2525 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17422,4 +17422,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 8027f52963..84e51d1047 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<> + * @generated SignedSource<<19b79154878565bc9201c3fda345c2e1>> */ /* @@ -19101,14 +19101,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2243 = React.version; if ( - "19.2.0-native-fb-820af209-20250729" !== + "19.2.0-native-fb-85bbe39e-20250729" !== isomorphicReactPackageVersion$jscomp$inline_2243 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2243, - "19.2.0-native-fb-820af209-20250729" + "19.2.0-native-fb-85bbe39e-20250729" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19130,10 +19130,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2250 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729", + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$319 = 0; @@ -19399,7 +19399,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; "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 a3efb93a69..82077f1125 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<<06e15cce0fbb51605bf2c52e5fd1a10e>> + * @generated SignedSource<> */ "use strict"; @@ -15739,10 +15739,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -15887,5 +15887,5 @@ __DEV__ && flushSyncWorkAcrossRoots_impl(0, !0)); } }; - exports.version = "19.2.0-native-fb-820af209-20250729"; + exports.version = "19.2.0-native-fb-85bbe39e-20250729"; })(); 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 d91fe93fcb..7502c57aaa 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<<015208ef78918d562897d73054076a4b>> + * @generated SignedSource<<8ac89ed282e82fc209412af10cf45113>> */ "use strict"; @@ -9912,10 +9912,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1432 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1433 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -10051,4 +10051,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 42fb68436c..3187dac9a3 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<<76e116028ef547cb39c66055a1b7e355>> + * @generated SignedSource<> */ "use strict"; @@ -10532,10 +10532,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1239 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729", + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$143 = 0; @@ -10686,4 +10686,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 1322b5a5cc..69c2c14c89 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<<72e22e14f261075efa4b5eb0864e3c50>> + * @generated SignedSource<<26bdbf2271269f7b76f948ebacab25e7>> */ "use strict"; @@ -1413,7 +1413,7 @@ __DEV__ && exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-native-fb-820af209-20250729"; + exports.version = "19.2.0-native-fb-85bbe39e-20250729"; "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 b07e6e6855..e041a685c8 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<> + * @generated SignedSource<<784de8dcc608ae5a9f197deb3d5f1d95>> */ "use strict"; @@ -589,4 +589,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; 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 87f565c500..44eb40d05d 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<<5f904bf639f54e3722635a1b2ef98a14>> + * @generated SignedSource<<3d838420a83d53fadbd63eea7c41bcf8>> */ "use strict"; @@ -593,7 +593,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-820af209-20250729"; +exports.version = "19.2.0-native-fb-85bbe39e-20250729"; "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 9b7f50e1a2..05936c9fe9 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 @@ -820af2097103309fdc5675d2bde744103a439eff +85bbe39ef8e24a192b5e9f2987b1babf8ce772e1 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 b997f1787b..05c6a94219 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<<8bc4b7fa6141d6a69563d35596f2d067>> + * @generated SignedSource<<2b97cb825a8de14dc2d802c2bffb3c88>> */ "use strict"; @@ -19244,10 +19244,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; 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 aedd0d5905..64b0017c48 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<> + * @generated SignedSource<> */ "use strict"; @@ -11016,10 +11016,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1235 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1235.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 b0a04cdc26..7f50ff9be0 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<<2433c6dec5b26d625605939bbb83ef05>> + * @generated SignedSource<<0fc4f358ea3a17ef04da144fd603e629>> */ "use strict"; @@ -12945,10 +12945,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1470 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1470.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 d661d199d8..dd8d71299f 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<> */ "use strict"; @@ -19602,11 +19602,11 @@ __DEV__ && shouldSuspendImpl = newShouldSuspendImpl; }; var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-820af209-20250729" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-85bbe39e-20250729" !== 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-820af209-20250729\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-85bbe39e-20250729\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -19632,10 +19632,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; 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 063c748cfd..7d8df29a15 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<<1ceb537de194199d61177d5006fc095b>> + * @generated SignedSource<> */ "use strict"; @@ -11242,11 +11242,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-820af209-20250729" !== isomorphicReactPackageVersion) +if ("19.2.0-native-fb-85bbe39e-20250729" !== 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-820af209-20250729\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-85bbe39e-20250729\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -11296,10 +11296,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1293 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1293.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 81b4acdddb..0cf92230e9 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<<136e26ae541ba78d142337cefd57066c>> + * @generated SignedSource<<5d86196437272ff1e42fd23146d7f24f>> */ "use strict"; @@ -13160,11 +13160,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-820af209-20250729" !== isomorphicReactPackageVersion) +if ("19.2.0-native-fb-85bbe39e-20250729" !== 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-820af209-20250729\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-85bbe39e-20250729\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -13214,10 +13214,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1528 = { bundleType: 0, - version: "19.2.0-native-fb-820af209-20250729", + version: "19.2.0-native-fb-85bbe39e-20250729", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-820af209-20250729" + reconcilerVersion: "19.2.0-native-fb-85bbe39e-20250729" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1528.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 fd279320fb..65e1dee070 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<<82fead294e1b0b5fcb96ef9cf7e4af9b>> + * @generated SignedSource<<85f4a03610e3d0a39fe3599dabbf580e>> */ 'use strict'; @@ -22074,6 +22074,7 @@ addObject(BUILTIN_SHAPES, BuiltInUseRefId, [ addObject(BUILTIN_SHAPES, BuiltInRefValueId, [ ['*', { kind: 'Object', shapeId: BuiltInRefValueId }], ]); +addObject(BUILTIN_SHAPES, ReanimatedSharedValueId, []); addFunction(BUILTIN_SHAPES, [], { positionalParams: [], restParam: Effect.ConditionallyMutate, @@ -44111,12 +44112,6 @@ class StableSidemap { }); } } - else if (this.env.config.enableTreatRefLikeIdentifiersAsRefs && - isUseRefType(lvalue.identifier)) { - this.map.set(lvalue.identifier.id, { - isStable: true, - }); - } break; } case 'Destructure': @@ -47373,7 +47368,18 @@ function* generateInstructionTypes(env, names, instr) { yield equation(left, returnType); break; } - case 'PropertyStore': + case 'PropertyStore': { + yield equation(makeType(), { + kind: 'Property', + objectType: value.object.identifier.type, + objectName: getName(names, value.object.identifier.id), + propertyName: { + kind: 'literal', + value: value.property, + }, + }); + break; + } case 'DeclareLocal': case 'RegExpLiteral': case 'MetaProperty': 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 3219947d2d..d784959f0d 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<<377758887af8926074774ed2f3e15beb>> */ 'use strict'; @@ -22059,6 +22059,7 @@ addObject(BUILTIN_SHAPES, BuiltInUseRefId, [ addObject(BUILTIN_SHAPES, BuiltInRefValueId, [ ['*', { kind: 'Object', shapeId: BuiltInRefValueId }], ]); +addObject(BUILTIN_SHAPES, ReanimatedSharedValueId, []); addFunction(BUILTIN_SHAPES, [], { positionalParams: [], restParam: Effect.ConditionallyMutate, @@ -43890,12 +43891,6 @@ class StableSidemap { }); } } - else if (this.env.config.enableTreatRefLikeIdentifiersAsRefs && - isUseRefType(lvalue.identifier)) { - this.map.set(lvalue.identifier.id, { - isStable: true, - }); - } break; } case 'Destructure': @@ -47152,7 +47147,18 @@ function* generateInstructionTypes(env, names, instr) { yield equation(left, returnType); break; } - case 'PropertyStore': + case 'PropertyStore': { + yield equation(makeType(), { + kind: 'Property', + objectType: value.object.identifier.type, + objectName: getName(names, value.object.identifier.id), + propertyName: { + kind: 'literal', + value: value.property, + }, + }); + break; + } case 'DeclareLocal': case 'RegExpLiteral': case 'MetaProperty': 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 0a803080e8..fcc4021b89 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-820af209-20250729", + "version": "0.0.0-experimental-85bbe39e-20250729", "repository": { "type": "git", "url": "https://github.com/facebook/react.git",