fix(serializers): correct byte length calculation for typed arrays (#35386)

This commit is contained in:
Simon Knott 2025-03-27 13:50:06 +01:00 committed by GitHub
parent e82239fcb1
commit f5a7465a41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 2 additions and 2 deletions

View File

@ -59,7 +59,7 @@ function innerParseSerializedValue(value: SerializedValue, handles: any[] | unde
return new RegExp(value.r.p, value.r.f);
if (value.ta !== undefined) {
const ctor = typedArrayKindToConstructor[value.ta.k] as any;
return new ctor(value.ta.b.buffer, value.ta.b.byteOffset, value.ta.b.length);
return new ctor(value.ta.b.buffer, value.ta.b.byteOffset, value.ta.b.length / ctor.BYTES_PER_ELEMENT);
}
if (value.a !== undefined) {
@ -134,7 +134,7 @@ function innerSerializeValue(value: any, handleSerializer: (value: any) => Handl
const typedArrayKind = constructorToTypedArrayKind.get(value.constructor);
if (typedArrayKind)
return { ta: { b: Buffer.from(value.buffer, value.byteOffset, value.length), k: typedArrayKind } };
return { ta: { b: Buffer.from(value.buffer, value.byteOffset, value.byteLength), k: typedArrayKind } };
const id = visitorInfo.visited.get(value);
if (id)