Skip to content

Commit 5c10898

Browse files
ojssFishrock123
authored andcommitted
buffer: fix check for .buffer property
isSharedArrayBuffer in fromObject was missing obj.buffer moved the 'length' in obj check so that it is checked first making the code slightly more performant and able to handle SharedArrayBuffer without relying on an explicit check. Ref: #8510 PR-URL: #8739 Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
1 parent b579fca commit 5c10898

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

lib/buffer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ function fromObject(obj) {
246246
}
247247

248248
if (obj) {
249-
if (isArrayBuffer(obj.buffer) || 'length' in obj ||
250-
isSharedArrayBuffer(obj)) {
249+
if ('length' in obj || isArrayBuffer(obj.buffer) ||
250+
isSharedArrayBuffer(obj.buffer)) {
251251
if (typeof obj.length !== 'number' || obj.length !== obj.length) {
252252
return new FastBuffer();
253253
}

test/parallel/test-buffer-sharedarraybuffer.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,5 @@ assert.deepStrictEqual(arr_buf, ar_buf, 0);
2727
// Checks for calling Buffer.byteLength on a SharedArrayBuffer
2828

2929
assert.strictEqual(Buffer.byteLength(sab), sab.byteLength, 0);
30+
31+
assert.doesNotThrow(() => Buffer.from({buffer: sab}));

0 commit comments

Comments
 (0)