'use strict'; const common = require('../common'); // Buffer with size > INT32_MAX common.skipIf32Bits(); const assert = require('assert'); const { StringDecoder } = require('node:string_decoder'); const kStringMaxLength = require('buffer').constants.MAX_STRING_LENGTH; const size = 2 ** 31; const stringTooLongError = { message: `Cannot create a string longer than 0x${kStringMaxLength.toString(16)}` + ' characters', code: 'ERR_STRING_TOO_LONG', name: 'Error', }; try { const buf = Buffer.allocUnsafe(size); const decoder = new StringDecoder('utf8'); assert.throws(() => decoder.write(buf), stringTooLongError); } catch (e) { if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') { throw e; } common.skip('insufficient space for Buffer.alloc'); }