diff --git a/test/parallel/test-buffer.js b/test/parallel/test-buffer.js index 93aef824188e3e..9872eb1a0b25e0 100644 --- a/test/parallel/test-buffer.js +++ b/test/parallel/test-buffer.js @@ -1449,3 +1449,26 @@ assert.equal(SlowBuffer.prototype.offset, undefined); // Check pool offset after that by trying to write string into the pool. assert.doesNotThrow(() => Buffer.from('abc')); } + + +// Test failed or zero-sized Buffer allocations not affecting typed arrays +{ + const zeroArray = new Uint32Array(10).fill(0); + const sizes = [1e10, 0, 0.1, -1, 'a', undefined, null, NaN]; + const allocators = [ + Buffer, + SlowBuffer, + Buffer.alloc, + Buffer.allocUnsafe, + Buffer.allocUnsafeSlow + ]; + for (const allocator of allocators) { + for (const size of sizes) { + try { + allocator(size); + } catch (e) { + assert.deepStrictEqual(new Uint32Array(10), zeroArray); + } + } + } +}