diff --git a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js index 5ed762afb8..2e33c00ff3 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js @@ -275,32 +275,17 @@ describe('ReactDOMFiberAsync', () => { expect(ops).toEqual([]); }); // Only the active updates have flushed - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(container.textContent).toEqual('ABC'); - expect(ops).toEqual(['ABC']); - } else { - expect(container.textContent).toEqual('BC'); - expect(ops).toEqual(['BC']); - } + expect(container.textContent).toEqual('ABC'); + expect(ops).toEqual(['ABC']); - if (gate(flags => flags.enableUnifiedSyncLane)) { - instance.push('D'); - expect(container.textContent).toEqual('ABC'); - expect(ops).toEqual(['ABC']); - } else { - instance.push('D'); - expect(container.textContent).toEqual('BC'); - expect(ops).toEqual(['BC']); - } + instance.push('D'); + expect(container.textContent).toEqual('ABC'); + expect(ops).toEqual(['ABC']); // Flush the async updates Scheduler.unstable_flushAll(); expect(container.textContent).toEqual('ABCD'); - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(ops).toEqual(['ABC', 'ABCD']); - } else { - expect(ops).toEqual(['BC', 'ABCD']); - } + expect(ops).toEqual(['ABC', 'ABCD']); }); // @gate www diff --git a/packages/react-reconciler/src/ReactFiberLane.js b/packages/react-reconciler/src/ReactFiberLane.js index 45c8810c7f..34b11990c2 100644 --- a/packages/react-reconciler/src/ReactFiberLane.js +++ b/packages/react-reconciler/src/ReactFiberLane.js @@ -23,7 +23,6 @@ import { enableUpdaterTracking, allowConcurrentByDefault, enableTransitionTracing, - enableUnifiedSyncLane, } from 'shared/ReactFeatureFlags'; import {isDevToolsPresent} from './ReactFiberDevToolsHook'; import {ConcurrentUpdatesByDefaultMode, NoMode} from './ReactTypeOfMode'; @@ -136,11 +135,9 @@ let nextTransitionLane: Lane = TransitionLane1; let nextRetryLane: Lane = RetryLane1; function getHighestPriorityLanes(lanes: Lanes | Lane): Lanes { - if (enableUnifiedSyncLane) { - const pendingSyncLanes = lanes & SyncUpdateLanes; - if (pendingSyncLanes !== 0) { - return pendingSyncLanes; - } + const pendingSyncLanes = lanes & SyncUpdateLanes; + if (pendingSyncLanes !== NoLanes) { + return pendingSyncLanes; } switch (getHighestPriorityLane(lanes)) { case SyncHydrationLane: @@ -759,7 +756,7 @@ export function getBumpedLaneForHydration( const renderLane = getHighestPriorityLane(renderLanes); let lane; - if (enableUnifiedSyncLane && (renderLane & SyncUpdateLanes) !== NoLane) { + if ((renderLane & SyncUpdateLanes) !== NoLane) { lane = SyncHydrationLane; } else { switch (renderLane) { diff --git a/packages/react-reconciler/src/__tests__/ReactBatching-test.internal.js b/packages/react-reconciler/src/__tests__/ReactBatching-test.internal.js index f9938a79b5..a0ecd3a010 100644 --- a/packages/react-reconciler/src/__tests__/ReactBatching-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactBatching-test.internal.js @@ -158,17 +158,7 @@ describe('ReactBlockingMode', () => { ); // Now flush the first update - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded(['A1', 'B1']); - expect(root).toMatchRenderedOutput('A1B1'); - } else { - // Only the second update should have flushed synchronously - expect(Scheduler).toHaveYielded(['B1']); - expect(root).toMatchRenderedOutput('A0B1'); - - // Now flush the first update - expect(Scheduler).toFlushAndYield(['A1']); - expect(root).toMatchRenderedOutput('A1B1'); - } + expect(Scheduler).toHaveYielded(['A1', 'B1']); + expect(root).toMatchRenderedOutput('A1B1'); }); }); diff --git a/packages/react-reconciler/src/__tests__/ReactClassSetStateCallback-test.js b/packages/react-reconciler/src/__tests__/ReactClassSetStateCallback-test.js index 1342bd7310..022c496939 100644 --- a/packages/react-reconciler/src/__tests__/ReactClassSetStateCallback-test.js +++ b/packages/react-reconciler/src/__tests__/ReactClassSetStateCallback-test.js @@ -35,17 +35,11 @@ describe('ReactClassSetStateCallback', () => { expect(Scheduler).toHaveYielded([0]); await act(async () => { - if (gate(flags => flags.enableUnifiedSyncLane)) { - React.startTransition(() => { - app.setState({step: 1}, () => - Scheduler.unstable_yieldValue('Callback 1'), - ); - }); - } else { + React.startTransition(() => { app.setState({step: 1}, () => Scheduler.unstable_yieldValue('Callback 1'), ); - } + }); ReactNoop.flushSync(() => { app.setState({step: 2}, () => Scheduler.unstable_yieldValue('Callback 2'), diff --git a/packages/react-reconciler/src/__tests__/ReactFlushSync-test.js b/packages/react-reconciler/src/__tests__/ReactFlushSync-test.js index 5802253e1c..1ee03bd4b8 100644 --- a/packages/react-reconciler/src/__tests__/ReactFlushSync-test.js +++ b/packages/react-reconciler/src/__tests__/ReactFlushSync-test.js @@ -54,21 +54,13 @@ describe('ReactFlushSync', () => { // The passive effect will schedule a sync update and a normal update. // They should commit in two separate batches. First the sync one. expect(() => { - expect(Scheduler).toFlushUntilNextPaint( - gate(flags => flags.enableUnifiedSyncLane) ? ['1, 1'] : ['1, 0'], - ); + expect(Scheduler).toFlushUntilNextPaint(['1, 1']); }).toErrorDev('flushSync was called from inside a lifecycle method'); - // The remaining update is not sync + // No remaining update ReactNoop.flushSync(); expect(Scheduler).toHaveYielded([]); - - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toFlushUntilNextPaint([]); - } else { - // Now flush it. - expect(Scheduler).toFlushUntilNextPaint(['1, 1']); - } + expect(Scheduler).toFlushUntilNextPaint([]); }); expect(root).toMatchRenderedOutput('1, 1'); }); diff --git a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js index ebf4a25446..207373a4b3 100644 --- a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js @@ -568,13 +568,9 @@ describe('ReactHooks', () => { }); }; - if (gate(flags => flags.enableUnifiedSyncLane)) { - // Update at transition priority - React.startTransition(() => update(n => n * 100)); - } else { - // Update at normal priority - ReactTestRenderer.unstable_batchedUpdates(() => update(n => n * 100)); - } + // Update at transition priority + React.startTransition(() => update(n => n * 100)); + // The new state is eagerly computed. expect(Scheduler).toHaveYielded(['Compute state (1 -> 100)']); diff --git a/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js b/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js index 8bbf49c2cc..ac6f312e5d 100644 --- a/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js +++ b/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js @@ -961,15 +961,8 @@ describe('ReactHooksWithNoopRenderer', () => { ReactNoop.flushSync(() => { counter.current.dispatch(INCREMENT); }); - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded(['Count: 4']); - expect(ReactNoop.getChildren()).toEqual([span('Count: 4')]); - } else { - expect(Scheduler).toHaveYielded(['Count: 1']); - expect(ReactNoop.getChildren()).toEqual([span('Count: 1')]); - expect(Scheduler).toFlushAndYield(['Count: 4']); - expect(ReactNoop.getChildren()).toEqual([span('Count: 4')]); - } + expect(Scheduler).toHaveYielded(['Count: 4']); + expect(ReactNoop.getChildren()).toEqual([span('Count: 4')]); }); }); @@ -1727,15 +1720,7 @@ describe('ReactHooksWithNoopRenderer', () => { // As a result we, somewhat surprisingly, commit them in the opposite order. // This should be fine because any non-discrete set of work doesn't guarantee order // and easily could've happened slightly later too. - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded(['Will set count to 1', 'Count: 1']); - } else { - expect(Scheduler).toHaveYielded([ - 'Will set count to 1', - 'Count: 2', - 'Count: 1', - ]); - } + expect(Scheduler).toHaveYielded(['Will set count to 1', 'Count: 1']); expect(ReactNoop.getChildren()).toEqual([span('Count: 1')]); }); diff --git a/packages/react-reconciler/src/__tests__/ReactIncrementalUpdates-test.js b/packages/react-reconciler/src/__tests__/ReactIncrementalUpdates-test.js index b56fdc8536..4bcdd4a776 100644 --- a/packages/react-reconciler/src/__tests__/ReactIncrementalUpdates-test.js +++ b/packages/react-reconciler/src/__tests__/ReactIncrementalUpdates-test.js @@ -162,11 +162,7 @@ describe('ReactIncrementalUpdates', () => { } // Schedule some async updates - if ( - gate( - flags => flags.enableSyncDefaultUpdates || flags.enableUnifiedSyncLane, - ) - ) { + if (gate(flags => flags.enableSyncDefaultUpdates)) { React.startTransition(() => { instance.setState(createUpdate('a')); instance.setState(createUpdate('b')); @@ -193,11 +189,7 @@ describe('ReactIncrementalUpdates', () => { }); // The sync updates should have flushed, but not the async ones. - if ( - gate( - flags => flags.enableSyncDefaultUpdates && flags.enableUnifiedSyncLane, - ) - ) { + if (gate(flags => flags.enableSyncDefaultUpdates)) { expect(Scheduler).toHaveYielded(['d', 'e', 'f']); expect(ReactNoop.getChildren()).toEqual([span('def')]); } else { @@ -209,38 +201,18 @@ describe('ReactIncrementalUpdates', () => { // Now flush the remaining work. Even though e and f were already processed, // they should be processed again, to ensure that the terminal state // is deterministic. - if ( - gate( - flags => flags.enableSyncDefaultUpdates && !flags.enableUnifiedSyncLane, - ) - ) { - expect(Scheduler).toFlushAndYield([ - // Since 'g' is in a transition, we'll process 'd' separately first. - // That causes us to process 'd' with 'e' and 'f' rebased. - 'd', - 'e', - 'f', - // Then we'll re-process everything for 'g'. - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - ]); - } else { - expect(Scheduler).toFlushAndYield([ - // Then we'll re-process everything for 'g'. - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - ]); - } + expect(Scheduler).toFlushAndYield([ + // Although 'g' is in a transition, it is intuerrupted and + // batched with 'd' + // Twe'll re-process everything for 'g'. + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + ]); expect(ReactNoop.getChildren()).toEqual([span('abcdefg')]); }); @@ -273,11 +245,7 @@ describe('ReactIncrementalUpdates', () => { } // Schedule some async updates - if ( - gate( - flags => flags.enableSyncDefaultUpdates || flags.enableUnifiedSyncLane, - ) - ) { + if (gate(flags => flags.enableSyncDefaultUpdates)) { React.startTransition(() => { instance.setState(createUpdate('a')); instance.setState(createUpdate('b')); @@ -307,11 +275,7 @@ describe('ReactIncrementalUpdates', () => { }); // The sync updates should have flushed, but not the async ones. - if ( - gate( - flags => flags.enableSyncDefaultUpdates && flags.enableUnifiedSyncLane, - ) - ) { + if (gate(flags => flags.enableSyncDefaultUpdates)) { expect(Scheduler).toHaveYielded(['d', 'e', 'f']); } else { // Update d was dropped and replaced by e. @@ -322,38 +286,7 @@ describe('ReactIncrementalUpdates', () => { // Now flush the remaining work. Even though e and f were already processed, // they should be processed again, to ensure that the terminal state // is deterministic. - if ( - gate( - flags => flags.enableSyncDefaultUpdates && !flags.enableUnifiedSyncLane, - ) - ) { - expect(Scheduler).toFlushAndYield([ - // Since 'g' is in a transition, we'll process 'd' separately first. - // That causes us to process 'd' with 'e' and 'f' rebased. - 'd', - 'e', - 'f', - // Then we'll re-process everything for 'g'. - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - ]); - } else { - expect(Scheduler).toFlushAndYield([ - // Then we'll re-process everything for 'g'. - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - ]); - } + expect(Scheduler).toFlushAndYield(['a', 'b', 'c', 'd', 'e', 'f', 'g']); expect(ReactNoop.getChildren()).toEqual([span('fg')]); }); @@ -708,29 +641,19 @@ describe('ReactIncrementalUpdates', () => { pushToLog('B'), ); }); - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded([ - 'Committed: B', - 'Committed: BCD', - 'Committed: ABCD', - ]); - } else { - expect(Scheduler).toHaveYielded([ - // A and B are pending. B is higher priority, so we'll render that first. - 'Committed: B', - // Because A comes first in the queue, we're now in rebase mode. B must - // be rebased on top of A. Also, in a layout effect, we received two new - // updates: C and D. C is user-blocking and D is synchronous. - // - // First render the synchronous update. What we're testing here is that - // B *is not dropped* even though it has lower than sync priority. That's - // because we already committed it. However, this render should not - // include C, because that update wasn't already committed. - 'Committed: BD', - 'Committed: BCD', - 'Committed: ABCD', - ]); - } + expect(Scheduler).toHaveYielded([ + // A and B are pending. B is higher priority, so we'll render that first. + 'Committed: B', + // Because A comes first in the queue, we're now in rebase mode. B must + // be rebased on top of A. Also, in a layout effect, we received two new + // updates: C and D. C is user-blocking and D is synchronous. + // + // First render the synchronous update. What we're testing here is that + // B *is not dropped* even though it has lower than sync priority. That's + // because we already committed it. C is batched with BD. + 'Committed: BCD', + 'Committed: ABCD', + ]); expect(root).toMatchRenderedOutput('ABCD'); }); @@ -776,29 +699,19 @@ describe('ReactIncrementalUpdates', () => { pushToLog('B'), ); }); - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded([ - 'Committed: B', - 'Committed: BCD', - 'Committed: ABCD', - ]); - } else { - expect(Scheduler).toHaveYielded([ - // A and B are pending. B is higher priority, so we'll render that first. - 'Committed: B', - // Because A comes first in the queue, we're now in rebase mode. B must - // be rebased on top of A. Also, in a layout effect, we received two new - // updates: C and D. C is user-blocking and D is synchronous. - // - // First render the synchronous update. What we're testing here is that - // B *is not dropped* even though it has lower than sync priority. That's - // because we already committed it. However, this render should not - // include C, because that update wasn't already committed. - 'Committed: BD', - 'Committed: BCD', - 'Committed: ABCD', - ]); - } + expect(Scheduler).toHaveYielded([ + // A and B are pending. B is higher priority, so we'll render that first. + 'Committed: B', + // Because A comes first in the queue, we're now in rebase mode. B must + // be rebased on top of A. Also, in a layout effect, we received two new + // updates: C and D. C is user-blocking and D is synchronous. + // + // First render the synchronous update. What we're testing here is that + // B *is not dropped* even though it has lower than sync priority. That's + // because we already committed it. C is batched with BD. + 'Committed: BCD', + 'Committed: ABCD', + ]); expect(root).toMatchRenderedOutput('ABCD'); }); diff --git a/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js b/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js index cffcf61782..811835350d 100644 --- a/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js +++ b/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js @@ -690,15 +690,10 @@ describe('ReactOffscreen', () => { ); // Before the inner update can finish, we receive another pair of updates. - if (gate(flags => flags.enableUnifiedSyncLane)) { - React.startTransition(() => { - setOuter(2); - setInner(2); - }); - } else { + React.startTransition(() => { setOuter(2); setInner(2); - } + }); // Also, before either of these new updates are processed, the hidden // tree is revealed at high priority. diff --git a/packages/react-reconciler/src/__tests__/ReactTransition-test.js b/packages/react-reconciler/src/__tests__/ReactTransition-test.js index dd0b9e0d0f..560bb527b1 100644 --- a/packages/react-reconciler/src/__tests__/ReactTransition-test.js +++ b/packages/react-reconciler/src/__tests__/ReactTransition-test.js @@ -934,28 +934,16 @@ describe('ReactTransition', () => { updateNormalPri(); }); - if (gate(flags => flags.enableUnifiedSyncLane)) { - expect(Scheduler).toHaveYielded([ - 'Normal pri: 0', - 'Commit', + expect(Scheduler).toHaveYielded([ + // Finish transition update. + 'Normal pri: 0', + 'Commit', - // Normal pri update. - 'Transition pri: 1', - 'Normal pri: 1', - 'Commit', - ]); - } else { - expect(Scheduler).toHaveYielded([ - // Finish transition update. - 'Normal pri: 0', - 'Commit', - - // Normal pri update. - 'Transition pri: 1', - 'Normal pri: 1', - 'Commit', - ]); - } + // Normal pri update. + 'Transition pri: 1', + 'Normal pri: 1', + 'Commit', + ]); expect(root).toMatchRenderedOutput('Transition pri: 1, Normal pri: 1'); }); diff --git a/packages/react-reconciler/src/__tests__/useMutableSource-test.internal.js b/packages/react-reconciler/src/__tests__/useMutableSource-test.internal.js index c4ca0ae1de..ef452cc581 100644 --- a/packages/react-reconciler/src/__tests__/useMutableSource-test.internal.js +++ b/packages/react-reconciler/src/__tests__/useMutableSource-test.internal.js @@ -1558,15 +1558,10 @@ describe('useMutableSource', () => { expect(Scheduler).toFlushAndYieldThrough(['a0', 'b0']); // Mutate in an event. This schedules a subscription update on a, which // already mounted, but not b, which hasn't subscribed yet. - if (gate(flags => flags.enableUnifiedSyncLane)) { - React.startTransition(() => { - mutateA('a1'); - mutateB('b1'); - }); - } else { + React.startTransition(() => { mutateA('a1'); mutateB('b1'); - } + }); // Mutate again at lower priority. This will schedule another subscription // update on a, but not b. When b mounts and subscriptions, the value it diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 63d1aae161..beb8c5a9cc 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -137,8 +137,6 @@ export const enableUseRefAccessWarning = false; // Enables time slicing for updates that aren't wrapped in startTransition. export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = __EXPERIMENTAL__; - // Adds an opt-in to time slicing for updates that aren't wrapped in // startTransition. Only relevant when enableSyncDefaultUpdates is disabled. export const allowConcurrentByDefault = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 95a330b576..ad62cb1909 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -68,7 +68,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = true; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = false; export const allowConcurrentByDefault = true; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index d8a1d8c5d7..3c81973639 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -59,7 +59,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = false; export const allowConcurrentByDefault = false; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index 92a4ecaf5d..1fecebe3c7 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -59,7 +59,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = __EXPERIMENTAL__; export const allowConcurrentByDefault = false; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js index dd2c58d33f..8d9220e876 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js @@ -58,7 +58,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = false; export const allowConcurrentByDefault = true; export const consoleManagedByDevToolsDuringStrictMode = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index 78652d8835..2a9b95fe06 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -59,7 +59,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = false; export const allowConcurrentByDefault = true; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.js b/packages/shared/forks/ReactFeatureFlags.testing.js index 72a1a74523..40257e370b 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.js @@ -59,7 +59,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = __EXPERIMENTAL__; export const allowConcurrentByDefault = false; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.www.js b/packages/shared/forks/ReactFeatureFlags.testing.www.js index d5bc91306d..c66a8f1cd7 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.www.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.www.js @@ -59,7 +59,6 @@ export const disableSchedulerTimeoutInWorkLoop = false; export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const enableSyncDefaultUpdates = true; -export const enableUnifiedSyncLane = __EXPERIMENTAL__; export const allowConcurrentByDefault = true; export const enableCustomElementPropertySupport = false; diff --git a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js index 0297c7dd44..6cd6998fe8 100644 --- a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js @@ -23,7 +23,6 @@ export const enableProfilerNestedUpdateScheduledHook = __VARIANT__; export const disableSchedulerTimeoutInWorkLoop = __VARIANT__; export const enableLazyContextPropagation = __VARIANT__; export const enableSyncDefaultUpdates = __VARIANT__; -export const enableUnifiedSyncLane = __VARIANT__; export const enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay = __VARIANT__; export const enableTransitionTracing = __VARIANT__; // Enable this flag to help with concurrent mode debugging. diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index 76ea71d342..4c5e3617f3 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -29,7 +29,6 @@ export const { disableSchedulerTimeoutInWorkLoop, enableLazyContextPropagation, enableSyncDefaultUpdates, - enableUnifiedSyncLane, enableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay, enableTransitionTracing, } = dynamicFeatureFlags; diff --git a/packages/use-subscription/src/__tests__/useSubscription-test.js b/packages/use-subscription/src/__tests__/useSubscription-test.js index ee89c3dbb9..4ce88b8134 100644 --- a/packages/use-subscription/src/__tests__/useSubscription-test.js +++ b/packages/use-subscription/src/__tests__/useSubscription-test.js @@ -454,13 +454,9 @@ describe('useSubscription', () => { observableA.next('a-2'); // Update again - if (gate(flags => flags.enableUnifiedSyncLane)) { - React.startTransition(() => { - renderer.update(); - }); - } else { + React.startTransition(() => { renderer.update(); - } + }); // Flush everything and ensure that the correct subscribable is used expect(Scheduler).toFlushAndYield([