diff --git a/packages/data/src/redux-store/metadata/selectors.js b/packages/data/src/redux-store/metadata/selectors.js index 4e5a999567302d..6cde6ec54b24e1 100644 --- a/packages/data/src/redux-store/metadata/selectors.js +++ b/packages/data/src/redux-store/metadata/selectors.js @@ -140,8 +140,15 @@ export function getCachedResolvers( state ) { * @return {boolean} True if one or more selectors are resolving, false otherwise. */ export function hasResolvingSelectors( state ) { - return [ ...Object.values( state ) ].some( ( selectorState ) => - [ ...selectorState._map.values() ].some( + return Object.values( state ).some( ( selectorState ) => + /** + * This uses the internal `_map` property of `EquivalentKeyMap` for + * optimization purposes, since the `EquivalentKeyMap` implementation + * does not support a `.values()` implementation. + * + * @see https://github.com/aduth/equivalent-key-map + */ + Array.from( selectorState._map.values() ).some( ( resolution ) => resolution[ 1 ]?.status === 'resolving' ) );