• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2require('../common');
3const assert = require('assert');
4
5const buffer = require('buffer');
6const SlowBuffer = buffer.SlowBuffer;
7
8const kMaxLength = buffer.kMaxLength;
9const bufferMaxSizeMsg = {
10  code: 'ERR_INVALID_OPT_VALUE',
11  name: 'RangeError',
12  message: /^The value "[^"]*" is invalid for option "size"$/
13};
14
15assert.throws(() => Buffer((-1 >>> 0) + 1), bufferMaxSizeMsg);
16assert.throws(() => SlowBuffer((-1 >>> 0) + 1), bufferMaxSizeMsg);
17assert.throws(() => Buffer.alloc((-1 >>> 0) + 1), bufferMaxSizeMsg);
18assert.throws(() => Buffer.allocUnsafe((-1 >>> 0) + 1), bufferMaxSizeMsg);
19assert.throws(() => Buffer.allocUnsafeSlow((-1 >>> 0) + 1), bufferMaxSizeMsg);
20
21assert.throws(() => Buffer(kMaxLength + 1), bufferMaxSizeMsg);
22assert.throws(() => SlowBuffer(kMaxLength + 1), bufferMaxSizeMsg);
23assert.throws(() => Buffer.alloc(kMaxLength + 1), bufferMaxSizeMsg);
24assert.throws(() => Buffer.allocUnsafe(kMaxLength + 1), bufferMaxSizeMsg);
25assert.throws(() => Buffer.allocUnsafeSlow(kMaxLength + 1), bufferMaxSizeMsg);
26
27// issue GH-4331
28assert.throws(() => Buffer.allocUnsafe(0x100000000), bufferMaxSizeMsg);
29assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFFF), bufferMaxSizeMsg);
30