fix: clamp negative forced exponent instead of returning NaN#304
Open
chatman-media wants to merge 1 commit into
Open
fix: clamp negative forced exponent instead of returning NaN#304chatman-media wants to merge 1 commit into
chatman-media wants to merge 1 commit into
Conversation
calculateExponent only clamps e > 8, but any exponent below -1 (the
documented auto sentinel) skips that too and indexes DECIMAL_POWERS /
BINARY_POWERS out of bounds, so e.g. filesize(1024, {exponent: -3})
returns "NaN undefined" instead of a sane string, and object output
silently drops symbol/unit. Clamp e < 0 to 0 the same way e > 8 is
already clamped to 8.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
calculateExponent clamps
e > 8down to 8, but nothing clamps the other side — any forcedexponentbelow-1(the documented auto sentinel) sails past both checks and ends up indexingDECIMAL_POWERS/BINARY_POWERSout of bounds.filesize(1024, {exponent: -3})currently returns"NaN undefined", and withoutput: "object"it silently dropssymbol/unitfrom the result ({value: NaN, exponent: -3, symbol: undefined, unit: undefined}), which breaks the documented shape.Fix just clamps
e < 0to0in the same spot, mirroring the existinge > 8clamp. Added tests for the string, object, and array output shapes with a couple of out-of-range values (-2,-3,-100).