node/test/parallel/test-internal-util-construct-sab.js

23 lines
824 B
JavaScript

// Flags: --enable-sharedarraybuffer-per-context --expose-internals
'use strict';
require('../common');
const assert = require('assert');
const { kMaxLength } = require('buffer');
const { isSharedArrayBuffer } = require('util/types');
const { constructSharedArrayBuffer } = require('internal/util');
// We're testing that we can construct a SAB even when the global is not exposed.
assert.strictEqual(typeof SharedArrayBuffer, 'undefined');
for (const length of [undefined, 0, 1, 2 ** 16]) {
assert(isSharedArrayBuffer(constructSharedArrayBuffer(length)));
}
// Specifically test the following cases:
// - out-of-range allocation requests should not crash the process
// - no int64 overflow
for (const length of [-1, kMaxLength + 1, 2 ** 64]) {
assert.throws(() => constructSharedArrayBuffer(length), RangeError);
}