0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-30 07:27:22 +01:00
nodejs/test/parallel/test-buffer-sharedarraybuffer.js
Ojas Shirekar 2154bc89d8
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: 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>
2016-10-07 00:57:35 +02:00

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}));