Clear memoizedState on unmount of fiber to avoid memory leak (#14218)

* Clear properties on unmount of fiber to ensure objects are not retained
This commit is contained in:
Dominic Gannaway authored and GitHub committed 2018-11-19 10:58:14 +00:00
1 parent a22fabc2a1
commit 9b2fb24f99
1 file changed
+10 -1
+10 -1
View File
@@ -726,11 +726,20 @@ function detachFiber(current: Fiber) {
// get GC:ed but we don't know which for sure which parent is the current
// one so we'll settle for GC:ing the subtree of this child. This child
// itself will be GC:ed when the parent updates the next time.
// We do not null out the 'nextEffect' field as it causes tests to fail.
current.return = null;
current.child = null;
current.memoizedState = null;
current.updateQueue = null;
current.firstEffect = null;
current.lastEffect = null;
if (current.alternate) {
current.alternate.child = null;
current.alternate.return = null;
current.alternate.child = null;
current.alternate.memoizedState = null;
current.alternate.updateQueue = null;
current.alternate.firstEffect = null;
current.alternate.lastEffect = null;
}
}