diff --git a/CHANGELOG.md b/CHANGELOG.md index 363ce9c95..72a1ce7eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ $ npm install @ngxs/store@dev ### To become next patch version - Fix(store): Prevent writing to state once action handler is unsubscribed [#2231](https://github.com/ngxs/store/pull/2231) +- Performance(store): Replace `instanceof Function` with `typeof` [#2247](https://github.com/ngxs/store/pull/2247) ### 18.1.4 2024-10-23 diff --git a/packages/store/src/selectors/selector-utils.ts b/packages/store/src/selectors/selector-utils.ts index bdfdcc063..675c4efe7 100644 --- a/packages/store/src/selectors/selector-utils.ts +++ b/packages/store/src/selectors/selector-utils.ts @@ -68,9 +68,10 @@ export function createMemoizedSelectorFn any>( creationMetadata: Partial | undefined ) { const containerClass = creationMetadata && creationMetadata.containerClass; - const wrappedFn = function wrappedSelectorFn(...args: any[]) { - const returnValue = originalFn.apply(containerClass, args); - if (returnValue instanceof Function) { + const wrappedFn = function wrappedSelectorFn() { + // eslint-disable-next-line prefer-rest-params + const returnValue = originalFn.apply(containerClass, arguments); + if (typeof returnValue === 'function') { const innerMemoizedFn = ɵmemoize.apply(null, [returnValue]); return innerMemoizedFn; }