Skip to content

Commit

Permalink
Using expirationTime and childExpirationTime
Browse files Browse the repository at this point in the history
  • Loading branch information
MQuy committed Feb 3, 2019
1 parent 184f610 commit eabd3a6
Showing 1 changed file with 28 additions and 36 deletions.
64 changes: 28 additions & 36 deletions src/FiberScheduler.js
Expand Up @@ -52,52 +52,44 @@ export function scheduleWork(fiber, expirationTime) {

function scheduleWorkToRoot(fiber, expirationTime) {
// Update the source fiber's expiration time
if (
fiber.expirationTime === NoWork ||
fiber.expirationTime > expirationTime
) {
if (fiber.expirationTime < expirationTime) {
fiber.expirationTime = expirationTime;
}
let alternate = fiber.alternate;
if (
alternate != null &&
(alternate.expirationTime === NoWork ||
alternate.expirationTime > expirationTime)
) {
var alternate = fiber.alternate;
if (alternate !== null && alternate.expirationTime < expirationTime) {
alternate.expirationTime = expirationTime;
}
// Walk the parent path to the root and update the child expiration time.
let node = fiber.return;
if (node == null && fiber.tag === HostRoot) {
return fiber.stateNode;
}
while (node != null) {
alternate = node.alternate;
if (
node.childExpirationTime === NoWork ||
node.childExpirationTime > expirationTime
) {
node.childExpirationTime = expirationTime;
if (
alternate != null &&
(alternate.childExpirationTime === NoWork ||
alternate.childExpirationTime > expirationTime)
var node = fiber.return;
var root = null;
if (node === null && fiber.tag === HostRoot) {
root = fiber.stateNode;
} else {
while (node !== null) {
alternate = node.alternate;
if (node.childExpirationTime < expirationTime) {
node.childExpirationTime = expirationTime;
if (
alternate !== null &&
alternate.childExpirationTime < expirationTime
) {
alternate.childExpirationTime = expirationTime;
}
} else if (
alternate !== null &&
alternate.childExpirationTime < expirationTime
) {
alternate.childExpirationTime = expirationTime;
}
} else if (
alternate != null &&
(alternate.childExpirationTime === NoWork ||
alternate.childExpirationTime > expirationTime)
) {
alternate.childExpirationTime = expirationTime;
}
if (node.return == null && node.tag === HostRoot) {
return node.stateNode;
if (node.return === null && node.tag === HostRoot) {
root = node.stateNode;
break;
}
node = node.return;
}
node = node.return;
}
return null;

return root;
}

function requestWork(root, expirationTime) {
Expand Down

0 comments on commit eabd3a6

Please sign in to comment.