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