Skip to content

Commit 1da94ba

Browse files
committed
Make remaining empty lanes Transition lanes
Doesn't really have any effect now because we batch everything together anyway but will allow for more parallelism once we support that.
1 parent d3d2451 commit 1da94ba

File tree

4 files changed

+148
-122
lines changed

4 files changed

+148
-122
lines changed

packages/react-reconciler/src/ReactFiberLane.new.js

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -87,38 +87,43 @@ export const SyncBatchedLane: Lane = /* */ 0b0000000000000000000
8787
export const InputDiscreteHydrationLane: Lane = /* */ 0b0000000000000000000000000000100;
8888
const InputDiscreteLane: Lanes = /* */ 0b0000000000000000000000000001000;
8989

90-
const InputContinuousHydrationLane: Lane = /* */ 0b0000000000000000000000000100000;
91-
const InputContinuousLane: Lanes = /* */ 0b0000000000000000000000001000000;
92-
93-
export const DefaultHydrationLane: Lane = /* */ 0b0000000000000000000000100000000;
94-
export const DefaultLane: Lanes = /* */ 0b0000000000000000000001000000000;
95-
96-
const TransitionHydrationLane: Lane = /* */ 0b0000000000000000001000000000000;
97-
const TransitionLanes: Lanes = /* */ 0b0000000001111111110000000000000;
98-
const TransitionLane1: Lane = /* */ 0b0000000000000000010000000000000;
99-
const TransitionLane2: Lane = /* */ 0b0000000000000000100000000000000;
100-
const TransitionLane3: Lane = /* */ 0b0000000000000001000000000000000;
101-
const TransitionLane4: Lane = /* */ 0b0000000000000010000000000000000;
102-
const TransitionLane5: Lane = /* */ 0b0000000000000100000000000000000;
103-
const TransitionLane6: Lane = /* */ 0b0000000000001000000000000000000;
104-
const TransitionLane7: Lane = /* */ 0b0000000000010000000000000000000;
105-
const TransitionLane8: Lane = /* */ 0b0000000000100000000000000000000;
106-
const TransitionLane9: Lane = /* */ 0b0000000001000000000000000000000;
107-
108-
const RetryLanes: Lanes = /* */ 0b0000011110000000000000000000000;
109-
const RetryLane1: Lane = /* */ 0b0000000010000000000000000000000;
110-
const RetryLane2: Lane = /* */ 0b0000000100000000000000000000000;
111-
const RetryLane3: Lane = /* */ 0b0000001000000000000000000000000;
112-
const RetryLane4: Lane = /* */ 0b0000010000000000000000000000000;
90+
const InputContinuousHydrationLane: Lane = /* */ 0b0000000000000000000000000010000;
91+
const InputContinuousLane: Lanes = /* */ 0b0000000000000000000000000100000;
92+
93+
export const DefaultHydrationLane: Lane = /* */ 0b0000000000000000000000001000000;
94+
export const DefaultLane: Lanes = /* */ 0b0000000000000000000000010000000;
95+
96+
const TransitionHydrationLane: Lane = /* */ 0b0000000000000000000000100000000;
97+
const TransitionLanes: Lanes = /* */ 0b0000000111111111111111000000000;
98+
const TransitionLane1: Lane = /* */ 0b0000000000000000000001000000000;
99+
const TransitionLane2: Lane = /* */ 0b0000000000000000000010000000000;
100+
const TransitionLane3: Lane = /* */ 0b0000000000000000000100000000000;
101+
const TransitionLane4: Lane = /* */ 0b0000000000000000001000000000000;
102+
const TransitionLane5: Lane = /* */ 0b0000000000000000010000000000000;
103+
const TransitionLane6: Lane = /* */ 0b0000000000000000100000000000000;
104+
const TransitionLane7: Lane = /* */ 0b0000000000000001000000000000000;
105+
const TransitionLane8: Lane = /* */ 0b0000000000000010000000000000000;
106+
const TransitionLane9: Lane = /* */ 0b0000000000000100000000000000000;
107+
const TransitionLane10: Lane = /* */ 0b0000000000001000000000000000000;
108+
const TransitionLane11: Lane = /* */ 0b0000000000010000000000000000000;
109+
const TransitionLane12: Lane = /* */ 0b0000000000100000000000000000000;
110+
const TransitionLane13: Lane = /* */ 0b0000000001000000000000000000000;
111+
const TransitionLane14: Lane = /* */ 0b0000000010000000000000000000000;
112+
113+
const RetryLanes: Lanes = /* */ 0b0000111100000000000000000000000;
114+
const RetryLane1: Lane = /* */ 0b0000000100000000000000000000000;
115+
const RetryLane2: Lane = /* */ 0b0000001000000000000000000000000;
116+
const RetryLane3: Lane = /* */ 0b0000010000000000000000000000000;
117+
const RetryLane4: Lane = /* */ 0b0000100000000000000000000000000;
113118

114119
export const SomeRetryLane: Lane = RetryLane1;
115120

116-
export const SelectiveHydrationLane: Lane = /* */ 0b0000100000000000000000000000000;
121+
export const SelectiveHydrationLane: Lane = /* */ 0b0001000000000000000000000000000;
117122

118-
const NonIdleLanes = /* */ 0b0000111111111111111111111111111;
123+
const NonIdleLanes = /* */ 0b0001111111111111111111111111111;
119124

120-
export const IdleHydrationLane: Lane = /* */ 0b0001000000000000000000000000000;
121-
const IdleLane: Lanes = /* */ 0b0010000000000000000000000000000;
125+
export const IdleHydrationLane: Lane = /* */ 0b0010000000000000000000000000000;
126+
const IdleLane: Lanes = /* */ 0b0100000000000000000000000000000;
122127

123128
export const OffscreenLane: Lane = /* */ 0b1000000000000000000000000000000;
124129

@@ -179,6 +184,11 @@ function getHighestPriorityLanes(lanes: Lanes | Lane): Lanes {
179184
case TransitionLane7:
180185
case TransitionLane8:
181186
case TransitionLane9:
187+
case TransitionLane10:
188+
case TransitionLane11:
189+
case TransitionLane12:
190+
case TransitionLane13:
191+
case TransitionLane14:
182192
return_highestLanePriority = TransitionPriority;
183193
return lanes & TransitionLanes;
184194
case RetryLane1:

packages/react-reconciler/src/ReactFiberLane.old.js

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -87,38 +87,43 @@ export const SyncBatchedLane: Lane = /* */ 0b0000000000000000000
8787
export const InputDiscreteHydrationLane: Lane = /* */ 0b0000000000000000000000000000100;
8888
const InputDiscreteLane: Lanes = /* */ 0b0000000000000000000000000001000;
8989

90-
const InputContinuousHydrationLane: Lane = /* */ 0b0000000000000000000000000100000;
91-
const InputContinuousLane: Lanes = /* */ 0b0000000000000000000000001000000;
92-
93-
export const DefaultHydrationLane: Lane = /* */ 0b0000000000000000000000100000000;
94-
export const DefaultLane: Lanes = /* */ 0b0000000000000000000001000000000;
95-
96-
const TransitionHydrationLane: Lane = /* */ 0b0000000000000000001000000000000;
97-
const TransitionLanes: Lanes = /* */ 0b0000000001111111110000000000000;
98-
const TransitionLane1: Lane = /* */ 0b0000000000000000010000000000000;
99-
const TransitionLane2: Lane = /* */ 0b0000000000000000100000000000000;
100-
const TransitionLane3: Lane = /* */ 0b0000000000000001000000000000000;
101-
const TransitionLane4: Lane = /* */ 0b0000000000000010000000000000000;
102-
const TransitionLane5: Lane = /* */ 0b0000000000000100000000000000000;
103-
const TransitionLane6: Lane = /* */ 0b0000000000001000000000000000000;
104-
const TransitionLane7: Lane = /* */ 0b0000000000010000000000000000000;
105-
const TransitionLane8: Lane = /* */ 0b0000000000100000000000000000000;
106-
const TransitionLane9: Lane = /* */ 0b0000000001000000000000000000000;
107-
108-
const RetryLanes: Lanes = /* */ 0b0000011110000000000000000000000;
109-
const RetryLane1: Lane = /* */ 0b0000000010000000000000000000000;
110-
const RetryLane2: Lane = /* */ 0b0000000100000000000000000000000;
111-
const RetryLane3: Lane = /* */ 0b0000001000000000000000000000000;
112-
const RetryLane4: Lane = /* */ 0b0000010000000000000000000000000;
90+
const InputContinuousHydrationLane: Lane = /* */ 0b0000000000000000000000000010000;
91+
const InputContinuousLane: Lanes = /* */ 0b0000000000000000000000000100000;
92+
93+
export const DefaultHydrationLane: Lane = /* */ 0b0000000000000000000000001000000;
94+
export const DefaultLane: Lanes = /* */ 0b0000000000000000000000010000000;
95+
96+
const TransitionHydrationLane: Lane = /* */ 0b0000000000000000000000100000000;
97+
const TransitionLanes: Lanes = /* */ 0b0000000111111111111111000000000;
98+
const TransitionLane1: Lane = /* */ 0b0000000000000000000001000000000;
99+
const TransitionLane2: Lane = /* */ 0b0000000000000000000010000000000;
100+
const TransitionLane3: Lane = /* */ 0b0000000000000000000100000000000;
101+
const TransitionLane4: Lane = /* */ 0b0000000000000000001000000000000;
102+
const TransitionLane5: Lane = /* */ 0b0000000000000000010000000000000;
103+
const TransitionLane6: Lane = /* */ 0b0000000000000000100000000000000;
104+
const TransitionLane7: Lane = /* */ 0b0000000000000001000000000000000;
105+
const TransitionLane8: Lane = /* */ 0b0000000000000010000000000000000;
106+
const TransitionLane9: Lane = /* */ 0b0000000000000100000000000000000;
107+
const TransitionLane10: Lane = /* */ 0b0000000000001000000000000000000;
108+
const TransitionLane11: Lane = /* */ 0b0000000000010000000000000000000;
109+
const TransitionLane12: Lane = /* */ 0b0000000000100000000000000000000;
110+
const TransitionLane13: Lane = /* */ 0b0000000001000000000000000000000;
111+
const TransitionLane14: Lane = /* */ 0b0000000010000000000000000000000;
112+
113+
const RetryLanes: Lanes = /* */ 0b0000111100000000000000000000000;
114+
const RetryLane1: Lane = /* */ 0b0000000100000000000000000000000;
115+
const RetryLane2: Lane = /* */ 0b0000001000000000000000000000000;
116+
const RetryLane3: Lane = /* */ 0b0000010000000000000000000000000;
117+
const RetryLane4: Lane = /* */ 0b0000100000000000000000000000000;
113118

114119
export const SomeRetryLane: Lane = RetryLane1;
115120

116-
export const SelectiveHydrationLane: Lane = /* */ 0b0000100000000000000000000000000;
121+
export const SelectiveHydrationLane: Lane = /* */ 0b0001000000000000000000000000000;
117122

118-
const NonIdleLanes = /* */ 0b0000111111111111111111111111111;
123+
const NonIdleLanes = /* */ 0b0001111111111111111111111111111;
119124

120-
export const IdleHydrationLane: Lane = /* */ 0b0001000000000000000000000000000;
121-
const IdleLane: Lanes = /* */ 0b0010000000000000000000000000000;
125+
export const IdleHydrationLane: Lane = /* */ 0b0010000000000000000000000000000;
126+
const IdleLane: Lanes = /* */ 0b0100000000000000000000000000000;
122127

123128
export const OffscreenLane: Lane = /* */ 0b1000000000000000000000000000000;
124129

@@ -179,6 +184,11 @@ function getHighestPriorityLanes(lanes: Lanes | Lane): Lanes {
179184
case TransitionLane7:
180185
case TransitionLane8:
181186
case TransitionLane9:
187+
case TransitionLane10:
188+
case TransitionLane11:
189+
case TransitionLane12:
190+
case TransitionLane13:
191+
case TransitionLane14:
182192
return_highestLanePriority = TransitionPriority;
183193
return lanes & TransitionLanes;
184194
case RetryLane1:

packages/react-reconciler/src/__tests__/DebugTracing-test.internal.js

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ describe('DebugTracing', () => {
1616

1717
let logs;
1818

19+
const DEFAULT_LANE_STRING = '0b0000000000000000000000010000000';
20+
const RETRY_LANE_STRING = '0b0000001000000000000000000000000';
21+
1922
beforeEach(() => {
2023
jest.resetModules();
2124

@@ -129,9 +132,9 @@ describe('DebugTracing', () => {
129132
expect(Scheduler).toFlushUntilNextPaint([]);
130133

131134
expect(logs).toEqual([
132-
'group: ⚛️ render (0b0000000010000000000000000000000)',
135+
`group: ⚛️ render (${RETRY_LANE_STRING})`,
133136
'log: <Example/>',
134-
'groupEnd: ⚛️ render (0b0000000010000000000000000000000)',
137+
`groupEnd: ⚛️ render (${RETRY_LANE_STRING})`,
135138
]);
136139
});
137140

@@ -158,9 +161,9 @@ describe('DebugTracing', () => {
158161
expect(Scheduler).toFlushUntilNextPaint([]);
159162

160163
expect(logs).toEqual([
161-
'group: ⚛️ render (0b0000000000000000000001000000000)',
164+
`group: ⚛️ render (${DEFAULT_LANE_STRING})`,
162165
'log: ⚛️ Example suspended',
163-
'groupEnd: ⚛️ render (0b0000000000000000000001000000000)',
166+
`groupEnd: ⚛️ render (${DEFAULT_LANE_STRING})`,
164167
]);
165168

166169
logs.splice(0);
@@ -199,19 +202,19 @@ describe('DebugTracing', () => {
199202
expect(Scheduler).toFlushUntilNextPaint([]);
200203

201204
expect(logs).toEqual([
202-
'group: ⚛️ render (0b0000000000000000000001000000000)',
205+
`group: ⚛️ render (${DEFAULT_LANE_STRING})`,
203206
'log: <Wrapper/>',
204-
'groupEnd: ⚛️ render (0b0000000000000000000001000000000)',
207+
`groupEnd: ⚛️ render (${DEFAULT_LANE_STRING})`,
205208
]);
206209

207210
logs.splice(0);
208211

209212
expect(Scheduler).toFlushUntilNextPaint([]);
210213

211214
expect(logs).toEqual([
212-
'group: ⚛️ render (0b0000000010000000000000000000000)',
215+
`group: ⚛️ render (${RETRY_LANE_STRING})`,
213216
'log: <Example/>',
214-
'groupEnd: ⚛️ render (0b0000000010000000000000000000000)',
217+
`groupEnd: ⚛️ render (${RETRY_LANE_STRING})`,
215218
]);
216219
});
217220

@@ -241,11 +244,11 @@ describe('DebugTracing', () => {
241244
expect(Scheduler).toFlushUntilNextPaint([]);
242245

243246
expect(logs).toEqual([
244-
'group: ⚛️ commit (0b0000000000000000000001000000000)',
245-
'group: ⚛️ layout effects (0b0000000000000000000001000000000)',
247+
`group: ⚛️ commit (${DEFAULT_LANE_STRING})`,
248+
`group: ⚛️ layout effects (${DEFAULT_LANE_STRING})`,
246249
'log: ⚛️ Example updated state (0b0000000000000000000000000000001)',
247-
'groupEnd: ⚛️ layout effects (0b0000000000000000000001000000000)',
248-
'groupEnd: ⚛️ commit (0b0000000000000000000001000000000)',
250+
`groupEnd: ⚛️ layout effects (${DEFAULT_LANE_STRING})`,
251+
`groupEnd: ⚛️ commit (${DEFAULT_LANE_STRING})`,
249252
]);
250253
});
251254

@@ -277,10 +280,10 @@ describe('DebugTracing', () => {
277280
}).toErrorDev('Cannot update during an existing state transition');
278281

279282
expect(logs).toEqual([
280-
'group: ⚛️ render (0b0000000000000000000001000000000)',
281-
'log: ⚛️ Example updated state (0b0000000000000000000001000000000)',
282-
'log: ⚛️ Example updated state (0b0000000000000000000001000000000)',
283-
'groupEnd: ⚛️ render (0b0000000000000000000001000000000)',
283+
`group: ⚛️ render (${DEFAULT_LANE_STRING})`,
284+
`log: ⚛️ Example updated state (${DEFAULT_LANE_STRING})`,
285+
`log: ⚛️ Example updated state (${DEFAULT_LANE_STRING})`,
286+
`groupEnd: ⚛️ render (${DEFAULT_LANE_STRING})`,
284287
]);
285288
});
286289

@@ -308,11 +311,11 @@ describe('DebugTracing', () => {
308311
expect(Scheduler).toFlushUntilNextPaint([]);
309312

310313
expect(logs).toEqual([
311-
'group: ⚛️ commit (0b0000000000000000000001000000000)',
312-
'group: ⚛️ layout effects (0b0000000000000000000001000000000)',
314+
`group: ⚛️ commit (${DEFAULT_LANE_STRING})`,
315+
`group: ⚛️ layout effects (${DEFAULT_LANE_STRING})`,
313316
'log: ⚛️ Example updated state (0b0000000000000000000000000000001)',
314-
'groupEnd: ⚛️ layout effects (0b0000000000000000000001000000000)',
315-
'groupEnd: ⚛️ commit (0b0000000000000000000001000000000)',
317+
`groupEnd: ⚛️ layout effects (${DEFAULT_LANE_STRING})`,
318+
`groupEnd: ⚛️ commit (${DEFAULT_LANE_STRING})`,
316319
]);
317320
});
318321

@@ -335,9 +338,9 @@ describe('DebugTracing', () => {
335338
);
336339
});
337340
expect(logs).toEqual([
338-
'group: ⚛️ passive effects (0b0000000000000000000001000000000)',
339-
'log: ⚛️ Example updated state (0b0000000000000000000001000000000)',
340-
'groupEnd: ⚛️ passive effects (0b0000000000000000000001000000000)',
341+
`group: ⚛️ passive effects (${DEFAULT_LANE_STRING})`,
342+
`log: ⚛️ Example updated state (${DEFAULT_LANE_STRING})`,
343+
`groupEnd: ⚛️ passive effects (${DEFAULT_LANE_STRING})`,
341344
]);
342345
});
343346

@@ -361,10 +364,10 @@ describe('DebugTracing', () => {
361364
});
362365

363366
expect(logs).toEqual([
364-
'group: ⚛️ render (0b0000000000000000000001000000000)',
365-
'log: ⚛️ Example updated state (0b0000000000000000000001000000000)',
366-
'log: ⚛️ Example updated state (0b0000000000000000000001000000000)', // debugRenderPhaseSideEffectsForStrictMode
367-
'groupEnd: ⚛️ render (0b0000000000000000000001000000000)',
367+
`group: ⚛️ render (${DEFAULT_LANE_STRING})`,
368+
`log: ⚛️ Example updated state (${DEFAULT_LANE_STRING})`,
369+
`log: ⚛️ Example updated state (${DEFAULT_LANE_STRING})`, // debugRenderPhaseSideEffectsForStrictMode
370+
`groupEnd: ⚛️ render (${DEFAULT_LANE_STRING})`,
368371
]);
369372
});
370373

@@ -389,9 +392,9 @@ describe('DebugTracing', () => {
389392
expect(Scheduler).toFlushUntilNextPaint([]);
390393

391394
expect(logs).toEqual([
392-
'group: ⚛️ render (0b0000000000000000000001000000000)',
395+
`group: ⚛️ render (${DEFAULT_LANE_STRING})`,
393396
'log: Hello from user code',
394-
'groupEnd: ⚛️ render (0b0000000000000000000001000000000)',
397+
`groupEnd: ⚛️ render (${DEFAULT_LANE_STRING})`,
395398
]);
396399
});
397400

0 commit comments

Comments
 (0)