Skip to content

Commit eabd3a6

Browse files
committed
Using expirationTime and childExpirationTime
Related pr facebook/react#13139
1 parent 184f610 commit eabd3a6

File tree

1 file changed

+28
-36
lines changed

1 file changed

+28
-36
lines changed

src/FiberScheduler.js

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -52,52 +52,44 @@ export function scheduleWork(fiber, expirationTime) {
5252

5353
function scheduleWorkToRoot(fiber, expirationTime) {
5454
// Update the source fiber's expiration time
55-
if (
56-
fiber.expirationTime === NoWork ||
57-
fiber.expirationTime > expirationTime
58-
) {
55+
if (fiber.expirationTime < expirationTime) {
5956
fiber.expirationTime = expirationTime;
6057
}
61-
let alternate = fiber.alternate;
62-
if (
63-
alternate != null &&
64-
(alternate.expirationTime === NoWork ||
65-
alternate.expirationTime > expirationTime)
66-
) {
58+
var alternate = fiber.alternate;
59+
if (alternate !== null && alternate.expirationTime < expirationTime) {
6760
alternate.expirationTime = expirationTime;
6861
}
6962
// Walk the parent path to the root and update the child expiration time.
70-
let node = fiber.return;
71-
if (node == null && fiber.tag === HostRoot) {
72-
return fiber.stateNode;
73-
}
74-
while (node != null) {
75-
alternate = node.alternate;
76-
if (
77-
node.childExpirationTime === NoWork ||
78-
node.childExpirationTime > expirationTime
79-
) {
80-
node.childExpirationTime = expirationTime;
81-
if (
82-
alternate != null &&
83-
(alternate.childExpirationTime === NoWork ||
84-
alternate.childExpirationTime > expirationTime)
63+
var node = fiber.return;
64+
var root = null;
65+
if (node === null && fiber.tag === HostRoot) {
66+
root = fiber.stateNode;
67+
} else {
68+
while (node !== null) {
69+
alternate = node.alternate;
70+
if (node.childExpirationTime < expirationTime) {
71+
node.childExpirationTime = expirationTime;
72+
if (
73+
alternate !== null &&
74+
alternate.childExpirationTime < expirationTime
75+
) {
76+
alternate.childExpirationTime = expirationTime;
77+
}
78+
} else if (
79+
alternate !== null &&
80+
alternate.childExpirationTime < expirationTime
8581
) {
8682
alternate.childExpirationTime = expirationTime;
8783
}
88-
} else if (
89-
alternate != null &&
90-
(alternate.childExpirationTime === NoWork ||
91-
alternate.childExpirationTime > expirationTime)
92-
) {
93-
alternate.childExpirationTime = expirationTime;
94-
}
95-
if (node.return == null && node.tag === HostRoot) {
96-
return node.stateNode;
84+
if (node.return === null && node.tag === HostRoot) {
85+
root = node.stateNode;
86+
break;
87+
}
88+
node = node.return;
9789
}
98-
node = node.return;
9990
}
100-
return null;
91+
92+
return root;
10193
}
10294

10395
function requestWork(root, expirationTime) {

0 commit comments

Comments
 (0)