V2: Relax validation in BinaryWriter #877
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.
BinaryWriter implements the Protobuf wire encoding. Its methods
int32
,uint32
,float
,fixed32
,sfixed32
, andsint32
validate that the numbers passed in meet the constraint of the numeric type. For example, auint32
- an unsigned 32-bit integer - must not be negative.The methods accept the TypeScript type
number
, but the implementation actually functions correctly if a string is passed, because of ECMAScript's implicit conversion.This PR changes the validation to also accept a string, and covers the correct behavior with tests. The reason for this change is to make the BinaryWriter more useful outside of the protobuf-es runtime.
This PR does not change the method signatures. The intended use is still to pass in a number, the support for string is just for resilience.