From ae7cc20c6ce4abe79362799565807164212ee46a Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Sat, 12 Sep 2020 01:14:00 -0400 Subject: [PATCH] Keep track of checked values --- packages/next/lib/is-serializable-props.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/next/lib/is-serializable-props.ts b/packages/next/lib/is-serializable-props.ts index cb27279bf5c3b..f0122ba52fc67 100644 --- a/packages/next/lib/is-serializable-props.ts +++ b/packages/next/lib/is-serializable-props.ts @@ -98,11 +98,16 @@ export function isSerializableProps( if (Array.isArray(value)) { visit(refs, value, path) + const seen = new Set() const newRefs = new Map(refs) if ( - [...new Set(value)].every((nestedValue, index) => - isSerializable(newRefs, nestedValue, `${path}[${index}]`) - ) + value.every((nestedValue, index) => { + if (seen.has(nestedValue)) { + return true + } + seen.add(nestedValue) + return isSerializable(newRefs, nestedValue, `${path}[${index}]`) + }) ) { return true }