fix(store): immutability check IE compatibility #1997
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
IE errors when attempting to access the
caller
property of a function,so rearrange the freeze function to check for this first.
Fixes #1991
PR Checklist
Please check if your PR fulfills the following requirements:
This shouldn't change the logic, so I think it should be covered by the existing tests?
PR Type
What is the current behavior?
If a store state object contains a function, the immutability check's freeze function will fail in IE. This is a known issue that also affected ngrx-store-freeze for a while and necessitated switching to deep-freeze-strict
It looks like whoever wrote the freeze function referenced deep-freeze-strict's code but perhaps didn't realise why the check for certain properties on a function were there, and so rearranged things in a way that broke it.
Closes #1991
What is the new behavior?
The
freeze
function now delays accessing the property until after the check.Does this PR introduce a breaking change?
Other information