Skip to content

Commit 9bcb800

Browse files
Refine fallback render detection for memoized fibers
Co-authored-by: Kent C. Dodds <me+github@kentcdodds.com>
1 parent 70b8346 commit 9bcb800

7 files changed

Lines changed: 13 additions & 15 deletions

File tree

exercises/06.rerenders/01.problem.memo/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only ListItem should not rerender when clicking force rerender', async ({
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only ListItem should not rerender when clicking force rerender', async ({
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

exercises/06.rerenders/01.solution.memo/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only ListItem should not rerender when clicking force rerender', async ({
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only ListItem should not rerender when clicking force rerender', async ({
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

exercises/06.rerenders/02.problem.comparator/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

exercises/06.rerenders/02.solution.comparator/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

exercises/06.rerenders/03.problem.primitives/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

exercises/06.rerenders/03.solution.primitives/tests/memoized.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
1313
<script>
1414
let internals
1515
const PerformedWorkFlag = 0b000000000000000000000000001
16-
const UserCodeFiberTags = new Set([0, 1, 9, 11, 14, 15])
16+
const UserCodeFiberTags = new Set([0, 1, 9, 11, 15])
1717
1818
let activeFallbackComponentNames = null
1919
@@ -50,7 +50,7 @@ test('Only two ListItems should not rerender when the highlighted item changes',
5050
}
5151
5252
function didFiberRender(previousFiber, nextFiber) {
53-
if (!previousFiber) return true
53+
if (!previousFiber) return false
5454
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
5555
}
5656

shared/get-component-calls.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const FunctionComponentTag = 0
1111
const ClassComponentTag = 1
1212
const ContextConsumerTag = 9
1313
const ForwardRefTag = 11
14-
const MemoComponentTag = 14
1514
const SimpleMemoComponentTag = 15
1615

1716
let activeFallbackComponentNames: Array<string> | null = null
@@ -22,7 +21,6 @@ function isUserCodeFiberTag(tag: number) {
2221
tag === ClassComponentTag ||
2322
tag === ContextConsumerTag ||
2423
tag === ForwardRefTag ||
25-
tag === MemoComponentTag ||
2624
tag === SimpleMemoComponentTag
2725
)
2826
}
@@ -56,7 +54,7 @@ function getFiberDisplayName(fiber: any) {
5654
}
5755

5856
function didFiberRender(previousFiber: any, nextFiber: any) {
59-
if (!previousFiber) return true
57+
if (!previousFiber) return false
6058
return (nextFiber.flags & PerformedWorkFlag) === PerformedWorkFlag
6159
}
6260

0 commit comments

Comments
 (0)