[ts] Builder incorrectly serializing empty strings (#7047)

* [ts] Builder incorrectly serializing empty strings

The builder was returning an offset of zero for empty strings. This is
leading to flatbuffers which fail verification in other languages, such
as Rust.

* tests expect 0 offset for null or undefined strings
This commit is contained in:
Max Burke 2022-01-29 14:23:57 -08:00 committed by GitHub
parent 19920db39f
commit 5993338ee3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 2 deletions

View File

@ -522,8 +522,11 @@ export class Builder {
* @param s The string to encode
* @return The offset in the buffer where the encoded string starts
*/
createString(s: string | Uint8Array): Offset {
if (!s) { return 0 }
createString(s: string | Uint8Array | null | undefined): Offset {
if (s === null || s === undefined) {
return 0;
}
let utf8: string | Uint8Array | number[];
if (s instanceof Uint8Array) {
utf8 = s;