Prevent infinite recursions when using refs
option as false
#27
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.
When using new
refs
option asfalse
introduced in 8021553, jsan will not handle circular references (as there will be no references to check), so there will be an infinite recursion in those cases. A simple solution is to check if regularJSON.stringify
fails and disable that option in that case. It is not the best solution as there could be other exceptions. We could check error message, but it's different in every browser.I'll keep it open for suggestions and will ship a patch without handling it as
refs
is new option which won't break any current usage. And anyway it was infinite recursion in recent versions when using reviver.