From cab1952fd64189958a47a7f3ae78f2eb05425f9f Mon Sep 17 00:00:00 2001 From: Jack Works <5390719+Jack-Works@users.noreply.github.com> Date: Sat, 21 Sep 2024 23:12:19 +0800 Subject: [PATCH] fix: resizable array buffer close gh-37 --- test/test.js | 1 + types/arraybuffer.js | 4 ++-- types/dataview.js | 4 +++- types/typed-arrays.js | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/test/test.js b/test/test.js index 07d0bb3..229f23c 100644 --- a/test/test.js +++ b/test/test.js @@ -699,6 +699,7 @@ function BuiltIn (preset) { const json = typeson.stringify({a}); const obj = typeson.parse(/** @type {string} */ (json)); expect(obj.a).to.be.an.instanceOf(Float64Array); + expect(obj.a.buffer.resizable).not.equal(true); expect(obj.a.length).to.equal(3); expect(obj.a[0]).to.equal(23.8); expect(obj.a[1]).to.equal(-15); diff --git a/types/arraybuffer.js b/types/arraybuffer.js index 6dd7cbf..471befe 100644 --- a/types/arraybuffer.js +++ b/types/arraybuffer.js @@ -25,7 +25,7 @@ const arraybuffer = { stateObj.buffers.push(b); return { s: encode(b), - maxByteLength: b.maxByteLength + maxByteLength: b.resizable ? b.maxByteLength : undefined }; }, revive ( @@ -49,7 +49,7 @@ const arraybuffer = { } const buffer = decode( /** @type {string} */ (b64.s), - {maxByteLength: b64.maxByteLength} + b64.resizable ? {maxByteLength: b64.maxByteLength} : undefined ); stateObj.buffers.push(buffer); return buffer; diff --git a/types/dataview.js b/types/dataview.js index 6f123e8..9136ee8 100644 --- a/types/dataview.js +++ b/types/dataview.js @@ -26,7 +26,9 @@ const dataview = { stateObj.buffers.push(buffer); return { encoded: encode(buffer), - maxByteLength: buffer.maxByteLength, + maxByteLength: buffer.resizable + ? buffer.maxByteLength + : undefined, byteOffset, byteLength }; diff --git a/types/typed-arrays.js b/types/typed-arrays.js index 856b4ff..46f0864 100644 --- a/types/typed-arrays.js +++ b/types/typed-arrays.js @@ -43,7 +43,9 @@ function create (TypedArray) { } stateObj.buffers.push(buffer); return { - maxByteLength: buffer.maxByteLength, + maxByteLength: buffer.resizable + ? buffer.maxByteLength + : undefined, encoded: encode(buffer), byteOffset, length: l