fix writeByteArray type

This commit is contained in:
DavidVentura
2024-01-25 01:32:07 +01:00
parent 2dfd19f2da
commit 832446d648
+6 -5
View File
@@ -25,12 +25,12 @@ DataView.prototype.readU32 = function () {
DataView.prototype.readU64 = function () { DataView.prototype.readU64 = function () {
return this.getUint64(0); return this.getUint64(0);
}; };
const isDataView = (x: DataView | number[]): x is DataView => { const isU8Array = (x: Uint8Array | number[]): x is Uint8Array => {
return x instanceof DataView; return x instanceof Uint8Array;
}; };
DataView.prototype.writeByteArray = function (arr) { DataView.prototype.writeByteArray = function (arr) {
const len = isDataView(arr) ? arr.byteLength : arr.length; const len = isU8Array(arr) ? arr.byteLength : arr.length;
for (let i = 0; i < len; i++) { for (let i = 0; i < len; i++) {
this.setUint8(i, arr[i]); this.setUint8(i, arr[i]);
} }
@@ -45,7 +45,8 @@ DataView.prototype.readByteArray = function (len) {
const Memory = { const Memory = {
alloc: (len: number) => new DataView(new ArrayBuffer(len + 1)), alloc: (len: number) => new DataView(new ArrayBuffer(len + 1)),
copy: (outbuf: DataView, inbuf: DataView, len: number) => outbuf.writeByteArray(inbuf.readByteArray(len)), copy: (outbuf: DataView, inbuf: DataView, len: number) =>
outbuf.writeByteArray(new Uint8Array(inbuf.readByteArray(len).buffer)),
}; };
declare global { declare global {
@@ -56,7 +57,7 @@ declare global {
readU32(): undefined; readU32(): undefined;
readU64(): undefined; readU64(): undefined;
readU8(): undefined; readU8(): undefined;
writeByteArray(arr: DataView | number[]): undefined; writeByteArray(arr: Uint8Array | number[]): undefined;
writeU16(n: number): undefined; writeU16(n: number): undefined;
writeU32(n: number): undefined; writeU32(n: number): undefined;
writeU64(n: number): undefined; writeU64(n: number): undefined;