Detect BigInt within circular() and properly convert within JSON.stringify #186
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.
Closes #175.
I used the more complex check of
Object.prototype.toString.call(val) === '[object BigInt]'
instead of just doingtypeof val === 'bigint'
to account for anyone doing something absurd likeObject(2n)
orObject(BigInt(3)
just to cover all the bases.Also may kinda smell that this is happening within
circular()
, but I didn't want to do anything more expansive than that. 😅I followed the lead of MDN and used
toString()
as the JSON-friendly output. When you runconsole.log
on aBigInt
it prints it with a trailingn
to signify it is a special value. I could maybe see doing that instead for clarity? They'd still have to be a string though so the effect isn't entirely the same.