1'use strict'; 2 3const common = require('../common'); 4const stream = require('stream'); 5const assert = require('assert'); 6 7function testWriteType(val, objectMode, code) { 8 const writable = new stream.Writable({ 9 objectMode, 10 write: () => {} 11 }); 12 writable.on('error', common.mustNotCall()); 13 if (code) { 14 assert.throws(() => { 15 writable.write(val); 16 }, { code }); 17 } else { 18 writable.write(val); 19 } 20} 21 22testWriteType([], false, 'ERR_INVALID_ARG_TYPE'); 23testWriteType({}, false, 'ERR_INVALID_ARG_TYPE'); 24testWriteType(0, false, 'ERR_INVALID_ARG_TYPE'); 25testWriteType(true, false, 'ERR_INVALID_ARG_TYPE'); 26testWriteType(0.0, false, 'ERR_INVALID_ARG_TYPE'); 27testWriteType(undefined, false, 'ERR_INVALID_ARG_TYPE'); 28testWriteType(null, false, 'ERR_STREAM_NULL_VALUES'); 29 30testWriteType([], true); 31testWriteType({}, true); 32testWriteType(0, true); 33testWriteType(true, true); 34testWriteType(0.0, true); 35testWriteType(undefined, true); 36testWriteType(null, true, 'ERR_STREAM_NULL_VALUES'); 37