| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 'use strict';var Buffer = require('../../').Buffer;var assert = require('assert');var buffer = require('../../');var Buffer = buffer.Buffer;var SlowBuffer = buffer.SlowBuffer;var ones = [1, 1, 1, 1];// should create a Buffervar sb = SlowBuffer(4);assert(sb instanceof Buffer);assert.strictEqual(sb.length, 4);sb.fill(1);for (var [key, value] of sb.entries()) {  assert.deepStrictEqual(value, ones[key]);}// underlying ArrayBuffer should have the same lengthassert.strictEqual(sb.buffer.byteLength, 4);// should work without newsb = SlowBuffer(4);assert(sb instanceof Buffer);assert.strictEqual(sb.length, 4);sb.fill(1);for (var [key, value] of sb.entries()) {  assert.deepStrictEqual(value, ones[key]);}// should work with edge casesassert.strictEqual(SlowBuffer(0).length, 0);try {  assert.strictEqual(    SlowBuffer(buffer.kMaxLength).length, buffer.kMaxLength);} catch (e) {  assert.equal(e.message, 'Array buffer allocation failed');}// should work with number-coercible valuesassert.strictEqual(SlowBuffer('6').length, 6);assert.strictEqual(SlowBuffer(true).length, 1);// should create zero-length buffer if parameter is not a numberassert.strictEqual(SlowBuffer().length, 0);assert.strictEqual(SlowBuffer(NaN).length, 0);assert.strictEqual(SlowBuffer({}).length, 0);assert.strictEqual(SlowBuffer('string').length, 0);// should throw with invalid lengthassert.throws(function() {  SlowBuffer(Infinity);}, 'invalid Buffer length');assert.throws(function() {  SlowBuffer(-1);}, 'invalid Buffer length');assert.throws(function() {  SlowBuffer(buffer.kMaxLength + 1);}, 'invalid Buffer length');
 |