mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 07:27:22 +01:00
2154bc89d8
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: https://github.com/nodejs/node/pull/8510 PR-URL: https://github.com/nodejs/node/pull/8739 Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
32 lines
743 B
JavaScript
32 lines
743 B
JavaScript
/*global SharedArrayBuffer*/
|
|
'use strict';
|
|
// Flags: --harmony-sharedarraybuffer
|
|
|
|
require('../common');
|
|
const assert = require('assert');
|
|
const Buffer = require('buffer').Buffer;
|
|
|
|
const sab = new SharedArrayBuffer(24);
|
|
const arr1 = new Uint16Array(sab);
|
|
const arr2 = new Uint16Array(12);
|
|
arr2[0] = 5000;
|
|
arr1[0] = 5000;
|
|
arr1[1] = 4000;
|
|
arr2[1] = 4000;
|
|
|
|
const arr_buf = Buffer.from(arr1.buffer);
|
|
const ar_buf = Buffer.from(arr2.buffer);
|
|
|
|
assert.deepStrictEqual(arr_buf, ar_buf, 0);
|
|
|
|
arr1[1] = 6000;
|
|
arr2[1] = 6000;
|
|
|
|
assert.deepStrictEqual(arr_buf, ar_buf, 0);
|
|
|
|
// Checks for calling Buffer.byteLength on a SharedArrayBuffer
|
|
|
|
assert.strictEqual(Buffer.byteLength(sab), sab.byteLength, 0);
|
|
|
|
assert.doesNotThrow(() => Buffer.from({buffer: sab}));
|