From 819f58cd0ec740efa6822a8eec153356d2eb54b0 Mon Sep 17 00:00:00 2001 From: tyao1 Date: Wed, 8 Nov 2023 00:50:13 +0000 Subject: [PATCH] Enable enableUnifiedSyncLane (#27646) ## Summary The flag has been tested internally on WWW, should be good to set to true for OSS. Added a dynamic flag for fb RN. ## How did you test this change? yarn test DiffTrain build for commit https://github.com/facebook/react/commit/52d542ad6d410008c495084f511247f43387055f. --- .../cjs/ReactTestRenderer-dev.js | 18 +++- .../cjs/ReactTestRenderer-prod.js | 87 +++++++++-------- .../cjs/ReactTestRenderer-profiling.js | 87 +++++++++-------- .../RKJSModules/vendor/react/cjs/React-dev.js | 2 +- .../vendor/react/cjs/React-prod.js | 2 +- .../vendor/react/cjs/React-profiling.js | 2 +- .../Libraries/Renderer/REVISION | 2 +- .../implementations/ReactFabric-dev.fb.js | 21 ++++- .../implementations/ReactFabric-prod.fb.js | 94 ++++++++++--------- .../ReactFabric-profiling.fb.js | 92 ++++++++++-------- .../ReactNativeRenderer-dev.fb.js | 21 ++++- .../ReactNativeRenderer-prod.fb.js | 94 ++++++++++--------- .../ReactNativeRenderer-profiling.fb.js | 92 ++++++++++-------- 13 files changed, 350 insertions(+), 264 deletions(-) diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js index a733392fd1c63..948c57c95196c 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js @@ -8,7 +8,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<769546074522c131978074e9337b9413>> */ "use strict"; @@ -1078,7 +1078,7 @@ if (__DEV__) { var DefaultLane = /* */ 32; - var SyncUpdateLanes = SyncLane; + var SyncUpdateLanes = SyncLane | InputContinuousLane | DefaultLane; var TransitionHydrationLane = /* */ 64; @@ -1173,6 +1173,14 @@ if (__DEV__) { var nextRetryLane = RetryLane1; function getHighestPriorityLanes(lanes) { + { + var pendingSyncLanes = lanes & SyncUpdateLanes; + + if (pendingSyncLanes !== 0) { + return pendingSyncLanes; + } + } + switch (getHighestPriorityLane(lanes)) { case SyncHydrationLane: return SyncHydrationLane; @@ -1771,7 +1779,9 @@ if (__DEV__) { var renderLane = getHighestPriorityLane(renderLanes); var lane; - { + if ((renderLane & SyncUpdateLanes) !== NoLane) { + lane = SyncHydrationLane; + } else { switch (renderLane) { case SyncLane: lane = SyncHydrationLane; @@ -25346,7 +25356,7 @@ if (__DEV__) { return root; } - var ReactVersion = "18.3.0-canary-2c8a139a5-20231107"; + var ReactVersion = "18.3.0-canary-52d542ad6-20231107"; // Might add PROFILE later. diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js index a21c800f3e255..7ead421707992 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<<42aaf404bbde7ea71491676ec56cb0e1>> + @generated SignedSource<<64fea925e1f2075ccf9b0d7a53d3616f>> */ "use strict"; var React = require("react"), @@ -302,6 +302,8 @@ function clz32Fallback(x) { var nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; switch (lanes & -lanes) { case 1: return 1; @@ -4357,43 +4359,46 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (0 !== (didSuspend & 42)) didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -7717,7 +7722,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (lanes & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (lanes & 4194218) && 0 !== (remainingLanes & 42) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)) @@ -9039,7 +9044,7 @@ var devToolsConfig$jscomp$inline_1033 = { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 0, - version: "18.3.0-canary-2c8a139a5-20231107", + version: "18.3.0-canary-52d542ad6-20231107", rendererPackageName: "react-test-renderer" }; var internals$jscomp$inline_1226 = { @@ -9070,7 +9075,7 @@ var internals$jscomp$inline_1226 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-2c8a139a5-20231107" + reconcilerVersion: "18.3.0-canary-52d542ad6-20231107" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1227 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js index 13d31e1a2d104..0d90bbb743943 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<> + @generated SignedSource<<61b6979329b48da7cd49daaed19bd835>> */ "use strict"; var React = require("react"), @@ -320,6 +320,8 @@ function clz32Fallback(x) { var nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; switch (lanes & -lanes) { case 1: return 1; @@ -4453,43 +4455,46 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (0 !== (didSuspend & 42)) didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -8079,7 +8084,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (lanes & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (lanes & 4194218) && 0 !== (remainingLanes & 42) ? ((nestedUpdateScheduled = !0), root === rootWithNestedUpdates ? nestedUpdateCount++ @@ -9465,7 +9470,7 @@ var devToolsConfig$jscomp$inline_1075 = { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 0, - version: "18.3.0-canary-2c8a139a5-20231107", + version: "18.3.0-canary-52d542ad6-20231107", rendererPackageName: "react-test-renderer" }; var internals$jscomp$inline_1267 = { @@ -9496,7 +9501,7 @@ var internals$jscomp$inline_1267 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-2c8a139a5-20231107" + reconcilerVersion: "18.3.0-canary-52d542ad6-20231107" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1268 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-dev.js index 328d6b8274d32..3434aaa2615d6 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-dev.js @@ -25,7 +25,7 @@ if (__DEV__) { ) { __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error()); } - var ReactVersion = "18.3.0-canary-2c8a139a5-20231107"; + var ReactVersion = "18.3.0-canary-52d542ad6-20231107"; // ATTENTION // When adding new symbols to this file, diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-prod.js index e21bae0b6364d..934184b40697a 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-prod.js @@ -580,4 +580,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactCurrentDispatcher.current.useTransition(); }; -exports.version = "18.3.0-canary-2c8a139a5-20231107"; +exports.version = "18.3.0-canary-52d542ad6-20231107"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-profiling.js index 08c70c04a91de..893c0c2113326 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/cjs/React-profiling.js @@ -576,7 +576,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactCurrentDispatcher.current.useTransition(); }; -exports.version = "18.3.0-canary-2c8a139a5-20231107"; +exports.version = "18.3.0-canary-52d542ad6-20231107"; "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 7edd11d59be1c..c5d5bcbfa2183 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 @@ -2c8a139a593e0294c3a6953d74b451bd05fdcfca +52d542ad6d410008c495084f511247f43387055f 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 b1b0bd0f6b280..ebe41f43104b5 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 @@ -8,7 +8,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<0c416160e587747e4ce8606a10769cd0>> + * @generated SignedSource<<353097a9ab86338df938f96ba3466bc6>> */ "use strict"; @@ -3236,6 +3236,7 @@ to return true:wantsResponderID| | var enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries, useMicrotasksForSchedulingInFabric = dynamicFlags.useMicrotasksForSchedulingInFabric, @@ -4004,7 +4005,9 @@ to return true:wantsResponderID| | var DefaultLane = /* */ 32; - var SyncUpdateLanes = SyncLane; + var SyncUpdateLanes = enableUnifiedSyncLane + ? SyncLane | InputContinuousLane | DefaultLane + : SyncLane; var TransitionHydrationLane = /* */ 64; @@ -4160,6 +4163,14 @@ to return true:wantsResponderID| | var nextRetryLane = RetryLane1; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + + if (pendingSyncLanes !== 0) { + return pendingSyncLanes; + } + } + switch (getHighestPriorityLane(lanes)) { case SyncHydrationLane: return SyncHydrationLane; @@ -4758,7 +4769,9 @@ to return true:wantsResponderID| | var renderLane = getHighestPriorityLane(renderLanes); var lane; - { + if (enableUnifiedSyncLane && (renderLane & SyncUpdateLanes) !== NoLane) { + lane = SyncHydrationLane; + } else { switch (renderLane) { case SyncLane: lane = SyncHydrationLane; @@ -27792,7 +27805,7 @@ to return true:wantsResponderID| | return root; } - var ReactVersion = "18.3.0-canary-03c611c3"; + var ReactVersion = "18.3.0-canary-bef2c912"; function createPortal$1( children, 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 2180815bea543..21c86497d4ea0 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 @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<> + @generated SignedSource<<736daa47032f0b417e55ee36b6fcd64f>> */ "use strict"; require("react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore"); @@ -1317,6 +1317,7 @@ function dispatchEvent(target, topLevelType, nativeEvent) { var enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries, useMicrotasksForSchedulingInFabric = dynamicFlags.useMicrotasksForSchedulingInFabric, @@ -1353,9 +1354,14 @@ function clz32Fallback(x) { x >>>= 0; return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; } -var nextTransitionLane = 128, +var SyncUpdateLanes = enableUnifiedSyncLane ? 42 : 2, + nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + } switch (lanes & -lanes) { case 1: return 1; @@ -5435,43 +5441,47 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (enableUnifiedSyncLane && 0 !== (didSuspend & SyncUpdateLanes)) + didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -8415,7 +8425,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (transitions & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (transitions & 4194218) && 0 !== (remainingLanes & SyncUpdateLanes) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)) @@ -9535,7 +9545,7 @@ var roots = new Map(), devToolsConfig$jscomp$inline_1048 = { findFiberByHostInstance: getInstanceFromNode, bundleType: 0, - version: "18.3.0-canary-63564c82", + version: "18.3.0-canary-16d7331f", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -9578,7 +9588,7 @@ var internals$jscomp$inline_1290 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-63564c82" + reconcilerVersion: "18.3.0-canary-16d7331f" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1291 = __REACT_DEVTOOLS_GLOBAL_HOOK__; 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 12a0368505abb..b3812dfa82e34 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 @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<<0f7797b47b8b2ddfff6ea9a65887641f>> + @generated SignedSource<<9569d52216e41caa6cb3cd4bc81e912e>> */ "use strict"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && @@ -1321,6 +1321,7 @@ function dispatchEvent(target, topLevelType, nativeEvent) { var enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries, useMicrotasksForSchedulingInFabric = dynamicFlags.useMicrotasksForSchedulingInFabric, @@ -1429,6 +1430,7 @@ function clz32Fallback(x) { x >>>= 0; return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; } +var SyncUpdateLanes = enableUnifiedSyncLane ? 42 : 2; function getLabelForLane(lane) { if (lane & 1) return "SyncHydrationLane"; if (lane & 2) return "Sync"; @@ -1448,6 +1450,10 @@ function getLabelForLane(lane) { var nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + } switch (lanes & -lanes) { case 1: return 1; @@ -5651,43 +5657,47 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (enableUnifiedSyncLane && 0 !== (didSuspend & SyncUpdateLanes)) + didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -9027,7 +9037,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (transitions & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (transitions & 4194218) && 0 !== (remainingLanes & SyncUpdateLanes) ? ((nestedUpdateScheduled = !0), root === rootWithNestedUpdates ? nestedUpdateCount++ @@ -10237,7 +10247,7 @@ var roots = new Map(), devToolsConfig$jscomp$inline_1126 = { findFiberByHostInstance: getInstanceFromNode, bundleType: 0, - version: "18.3.0-canary-42042f68", + version: "18.3.0-canary-491a84d2", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -10293,7 +10303,7 @@ var roots = new Map(), scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-42042f68" + reconcilerVersion: "18.3.0-canary-491a84d2" }); exports.createPortal = function (children, containerTag) { return createPortal$1( 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 271aaae16693c..63645acb34851 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 @@ -8,7 +8,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<8991b9801f0e6d4eb5dc24aa802bf853>> */ "use strict"; @@ -2947,6 +2947,7 @@ to return true:wantsResponderID| | var enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries; // The rest of the flags are static for better dead code elimination. var enableSchedulingProfiler = true; @@ -4867,7 +4868,9 @@ to return true:wantsResponderID| | var DefaultLane = /* */ 32; - var SyncUpdateLanes = SyncLane; + var SyncUpdateLanes = enableUnifiedSyncLane + ? SyncLane | InputContinuousLane | DefaultLane + : SyncLane; var TransitionHydrationLane = /* */ 64; @@ -5023,6 +5026,14 @@ to return true:wantsResponderID| | var nextRetryLane = RetryLane1; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + + if (pendingSyncLanes !== 0) { + return pendingSyncLanes; + } + } + switch (getHighestPriorityLane(lanes)) { case SyncHydrationLane: return SyncHydrationLane; @@ -5621,7 +5632,9 @@ to return true:wantsResponderID| | var renderLane = getHighestPriorityLane(renderLanes); var lane; - { + if (enableUnifiedSyncLane && (renderLane & SyncUpdateLanes) !== NoLane) { + lane = SyncHydrationLane; + } else { switch (renderLane) { case SyncLane: lane = SyncHydrationLane; @@ -28238,7 +28251,7 @@ to return true:wantsResponderID| | return root; } - var ReactVersion = "18.3.0-canary-62efe994"; + var ReactVersion = "18.3.0-canary-600d8797"; function createPortal$1( children, 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 df8823b389bf1..8c09cdd1ce941 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 @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<<756552b892e56b9b847cea5b678584c0>> + @generated SignedSource<<52fc9242d45c207fb10116d9191e64d9>> */ "use strict"; require("react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore"); @@ -1162,6 +1162,7 @@ var ReactSharedInternals = enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries, REACT_ELEMENT_TYPE = Symbol.for("react.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), @@ -1724,9 +1725,14 @@ function clz32Fallback(x) { x >>>= 0; return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; } -var nextTransitionLane = 128, +var SyncUpdateLanes = enableUnifiedSyncLane ? 42 : 2, + nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + } switch (lanes & -lanes) { case 1: return 1; @@ -5501,43 +5507,47 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (enableUnifiedSyncLane && 0 !== (didSuspend & SyncUpdateLanes)) + didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -8626,7 +8636,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (transitions & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (transitions & 4194218) && 0 !== (remainingLanes & SyncUpdateLanes) ? root === rootWithNestedUpdates ? nestedUpdateCount++ : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root)) @@ -9753,7 +9763,7 @@ var roots = new Map(), devToolsConfig$jscomp$inline_1111 = { findFiberByHostInstance: getInstanceFromTag, bundleType: 0, - version: "18.3.0-canary-1ca90b81", + version: "18.3.0-canary-62062aef", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -9796,7 +9806,7 @@ var internals$jscomp$inline_1367 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-1ca90b81" + reconcilerVersion: "18.3.0-canary-62062aef" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1368 = __REACT_DEVTOOLS_GLOBAL_HOOK__; 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 e40bb25692c39..1ea84f86da1f7 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 @@ -8,7 +8,7 @@ @noflow @nolint @preventMunge - @generated SignedSource<<8168b1ab1f69cb9572ec780bb8224b09>> + @generated SignedSource<<374307ecedc6420e30fb133c4ca89a82>> */ "use strict"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && @@ -1166,6 +1166,7 @@ var ReactSharedInternals = enableUseRefAccessWarning = dynamicFlags.enableUseRefAccessWarning, enableDeferRootSchedulingToMicrotask = dynamicFlags.enableDeferRootSchedulingToMicrotask, + enableUnifiedSyncLane = dynamicFlags.enableUnifiedSyncLane, alwaysThrottleRetries = dynamicFlags.alwaysThrottleRetries, REACT_ELEMENT_TYPE = Symbol.for("react.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), @@ -1800,6 +1801,7 @@ function clz32Fallback(x) { x >>>= 0; return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; } +var SyncUpdateLanes = enableUnifiedSyncLane ? 42 : 2; function getLabelForLane(lane) { if (lane & 1) return "SyncHydrationLane"; if (lane & 2) return "Sync"; @@ -1819,6 +1821,10 @@ function getLabelForLane(lane) { var nextTransitionLane = 128, nextRetryLane = 4194304; function getHighestPriorityLanes(lanes) { + if (enableUnifiedSyncLane) { + var pendingSyncLanes = lanes & SyncUpdateLanes; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + } switch (lanes & -lanes) { case 1: return 1; @@ -5717,43 +5723,47 @@ function updateDehydratedSuspenseComponent( if (didReceiveUpdate || didSuspend) { nextProps = workInProgressRoot; if (null !== nextProps) { - switch (renderLanes & -renderLanes) { - case 2: - didSuspend = 1; - break; - case 8: - didSuspend = 4; - break; - case 32: - didSuspend = 16; - break; - case 128: - case 256: - case 512: - case 1024: - case 2048: - case 4096: - case 8192: - case 16384: - case 32768: - case 65536: - case 131072: - case 262144: - case 524288: - case 1048576: - case 2097152: - case 4194304: - case 8388608: - case 16777216: - case 33554432: - didSuspend = 64; - break; - case 268435456: - didSuspend = 134217728; - break; - default: - didSuspend = 0; - } + didSuspend = renderLanes & -renderLanes; + if (enableUnifiedSyncLane && 0 !== (didSuspend & SyncUpdateLanes)) + didSuspend = 1; + else + switch (didSuspend) { + case 2: + didSuspend = 1; + break; + case 8: + didSuspend = 4; + break; + case 32: + didSuspend = 16; + break; + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + didSuspend = 64; + break; + case 268435456: + didSuspend = 134217728; + break; + default: + didSuspend = 0; + } didSuspend = 0 !== (didSuspend & (nextProps.suspendedLanes | renderLanes)) ? 0 @@ -9238,7 +9248,7 @@ function commitRootImpl( 0 !== root.tag && flushPassiveEffects(); remainingLanes = root.pendingLanes; - 0 !== (transitions & 4194218) && 0 !== (remainingLanes & 2) + 0 !== (transitions & 4194218) && 0 !== (remainingLanes & SyncUpdateLanes) ? ((nestedUpdateScheduled = !0), root === rootWithNestedUpdates ? nestedUpdateCount++ @@ -10455,7 +10465,7 @@ var roots = new Map(), devToolsConfig$jscomp$inline_1189 = { findFiberByHostInstance: getInstanceFromTag, bundleType: 0, - version: "18.3.0-canary-918fff52", + version: "18.3.0-canary-e75e0b3e", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -10511,7 +10521,7 @@ var roots = new Map(), scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "18.3.0-canary-918fff52" + reconcilerVersion: "18.3.0-canary-e75e0b3e" }); exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = { computeComponentStackForErrorReporting: function (reactTag) {