Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Effects list refactor continued: passive effects traversal #19374

Merged
merged 11 commits into from
Jul 29, 2020

Commits on Jul 29, 2020

  1. Effects list refactor continued: passive effects traversal

    * Adds new Passive subtree tag value.
    * Bubbles passive flag to ancestors in the case of an unmount.
    * Adds recursive traversal for passive effects (mounts and unmounts).
    * Removes pendingPassiveHookEffectsMount and pendingPassiveHookEffectsUnmount arrays from work loop.
    * Re-adds sibling and child pointer detaching (temporarily removed in previous PR).
    * Addresses some minor TODO comments left over from previous PRs.
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    bfe385f View commit details
    Browse the repository at this point in the history
  2. Add persistent, Static subtreeTag

    This allows certain concepts to persist without recalculting them, e.g. whether a subtree contains passive effects or portals. This helps for cases like nested unmounts that contain deep passive effects.
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    fe2e311 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2876d61 View commit details
    Browse the repository at this point in the history
  4. Added gate to SchedulingProfiler test

    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    0c59d06 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7d618ed View commit details
    Browse the repository at this point in the history
  6. Remove PassiveSubtreeTag optimization

    Instead, always schedule a passive traversal for a subtree containing a deleted node. The overhead of doing this (during the passive phase) is small, and effects are so common that a cleanup in the subtree is likely. This saves some bytes.
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    cba61f7 View commit details
    Browse the repository at this point in the history
  7. Tweaks made in response to PR feedback:

    * Added Deletion effect to PassiveMask.
      * Removed the no longer needed explicit bubbling of Passive subtreeTag during deletion.
    * Removed unnecessary deletion effectTag from fallback child.
    * Detached alternate.return as well during layout.
    * Removed PassiveStaticEffect from hook update.
    * Removed unnecessary call to detachFiberAfterEffects.
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    9dc5188 View commit details
    Browse the repository at this point in the history
  8. Defer clearing deletions array until passive, remove unecessary didBa…

    …ilout check
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    a57840e View commit details
    Browse the repository at this point in the history
  9. Removed PassiveUnmountPendingDev in the new reconciler

    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    6d926da View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    c1a1be5 View commit details
    Browse the repository at this point in the history
  11. Split flushPassiveUnmountEffects() into two functions

    One is used for mounted fibers, and one for unmounted subtrees.
    Brian Vaughn committed Jul 29, 2020
    Configuration menu
    Copy the full SHA
    ae37c7c View commit details
    Browse the repository at this point in the history