From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../resizable-array-buffers-transferable.js | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 js/src/jit-test/tests/structured-clone/resizable-array-buffers-transferable.js (limited to 'js/src/jit-test/tests/structured-clone/resizable-array-buffers-transferable.js') diff --git a/js/src/jit-test/tests/structured-clone/resizable-array-buffers-transferable.js b/js/src/jit-test/tests/structured-clone/resizable-array-buffers-transferable.js new file mode 100644 index 0000000000..dd7c7fb075 --- /dev/null +++ b/js/src/jit-test/tests/structured-clone/resizable-array-buffers-transferable.js @@ -0,0 +1,37 @@ +// |jit-test| --enable-arraybuffer-resizable; skip-if: !ArrayBuffer.prototype.resize + +const scopes = [ + "SameProcess", + "DifferentProcess", + "DifferentProcessForIndexedDB", +]; + +function testArrayBufferTransferable(scope) { + var length = 4; + var byteLength = length * Uint8Array.BYTES_PER_ELEMENT; + var maxByteLength = 2 * byteLength; + + var ab = new ArrayBuffer(byteLength, {maxByteLength}); + assertEq(ab.resizable, true); + assertEq(ab.byteLength, byteLength); + assertEq(ab.maxByteLength, maxByteLength); + + var ta = new Uint8Array(ab); + ta.set([33, 44, 55, 66]); + assertEq(ta.toString(), "33,44,55,66"); + + var clonebuf = serialize(ab, [ab], {scope}); + var ab2 = deserialize(clonebuf); + assertEq(ab2 instanceof ArrayBuffer, true); + assertEq(new Uint8Array(ab2).toString(), "33,44,55,66"); + assertEq(ab2.resizable, true); + assertEq(ab2.byteLength, byteLength); + assertEq(ab2.maxByteLength, maxByteLength); + + assertEq(ab.detached, true); + assertEq(ab2.detached, false); + + ab2.resize(maxByteLength); + assertEq(ab2.byteLength, maxByteLength); +} +scopes.forEach(testArrayBufferTransferable); -- cgit v1.2.3