[fix] Handle non-primitives in isNumber #12034
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.
While investigating chartjs/chartjs-plugin-zoom#928, I found that
isNonPrimitive
will throw TypeError on a Moment.js object after it's passed through Chart.js's options proxy, because the object has itsSymbol.toPrimitive
,toString
, andvalueOf
all set to null.(See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#string_coercion for background reading.)
Since isNumber appears to be a low-level function that can take any arbitrary input, it seems worth letting it handle this case.