• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

infernojs / inferno / 36720513081
95%

Build:
DEFAULT BRANCH: master
Ran 30 Sep 2026 01:18PM UTC
Jobs 1
Files 92
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Sep 2026 01:16PM UTC coverage: 94.023% (+1.1%) from 92.875%
36720513081

push

github

web-flow
Renew inferno animations (#1702)

Inferno core
Move hooks moved out of the reconciler

On master, the reconciler drove move animations directly. In the LIS phase, moveVNodeDOM walked down to the DOM node looking for a componentWillMove/onComponentWillMove owner. If it found one, it didn't insert the node yet; it queued a MoveQueueItem. At the end, callAllMoveAnimationHooks ran the hooks and then did the postponed inserts. This had three problems:

Hooks fired only for nodes that were physically moved, not for the neighbours they pushed aside.
Hooks ran after the list had already been partly changed.
Animated moves happened in a different order from plain moves (the old TODO: Should we delay this too…).
Now the core only has a small hook-in point, MoveAnimationAdapter in DOM/utils/common.ts, held in two module variables:

moveAnimations: set when inferno-animation is installed, through the new _MA export (setMoveAnimations).
activeMoveAnimations: set only while at least one component with a move hook is mounted.
The reconciler reaches the adapter from these places, each guarded by a null check:

Mount and unmount report which components have move hooks: mountClass/unmountClass for classes (checked again after componentDidMount), and updateHooks for function components, including through updateMoveHooks when a patch adds a hook.

moveVNodeDOM now only calls insertOrAppend, so animated and plain nodes move in the same order. If no bundled code calls _MA, the bundler drops all the checks and the reconciler is the same as master's. The published core grew from 8,212 to 8,435 bytes brotli.

What changes for users:

componentWillMove is now called for every item a keyed update keeps, before anything is patched, not only for moved items. The tests in animationHooks.spec.tsx now expect 4, 6 and 8 calls instead of 3, 4 and 7.
Custom move hooks only run if the app has done import 'inferno-animation'. Without that import they are never called.
Appear and leave ho... (continued)

3179 of 3685 branches covered (86.27%)

1147 of 1243 new or added lines in 13 files covered. (92.28%)

4 existing lines in 2 files now uncovered.

5081 of 5404 relevant lines covered (94.02%)

9770.42 hits per line

Uncovered Changes

Lines Coverage ∆ File
42
91.06
10.57% packages/inferno-animation/src/animations.ts
33
81.94
16.59% packages/inferno-animation/src/utils.ts
10
96.52
packages/inferno-animation/src/moveAnimations.ts
8
92.59
49.74% packages/inferno-animation/src/animationCoordinator.ts
3
96.45
0.5% packages/inferno/src/DOM/utils/common.ts

Coverage Regressions

Lines Coverage ∆ File
3
81.94
16.59% packages/inferno-animation/src/utils.ts
1
98.86
-1.14% packages/inferno/src/DOM/unmounting.ts
Jobs
ID Job ID Ran Files Coverage
1 36720513081.1 30 Sep 2026 01:18PM UTC 92
94.02
GitHub Action Run
Source Files on build 36720513081
  • Tree
  • List 92
  • Changed 13
  • Source Changed 13
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36720513081
  • 5e1bd954 on github
  • Prev Build on master (#36310709408)
  • Next Build on master (#36823389477)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc