diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 0230f4283112c3..b02edc7f34fa8e 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -619,7 +619,7 @@ OutgoingMessage.prototype.removeHeader = function removeHeader(name) { OutgoingMessage.prototype._implicitHeader = function _implicitHeader() { - this.emit('error', new ERR_METHOD_NOT_IMPLEMENTED('_implicitHeader()')); + throw new ERR_METHOD_NOT_IMPLEMENTED('_implicitHeader()'); }; ObjectDefineProperty(OutgoingMessage.prototype, 'headersSent', { diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 30c808efd5cacb..1993d29db64740 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -628,7 +628,7 @@ function maybeReadMore_(stream, state) { // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. Readable.prototype._read = function(n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); + throw new ERR_METHOD_NOT_IMPLEMENTED('_read()'); }; Readable.prototype.pipe = function(dest, pipeOpts) { diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js index cb4aae2e6d18f4..5928afc2581bad 100644 --- a/lib/_stream_transform.js +++ b/lib/_stream_transform.js @@ -163,7 +163,7 @@ Transform.prototype.push = function(chunk, encoding) { // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. Transform.prototype._transform = function(chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); + throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()'); }; Transform.prototype._write = function(chunk, encoding, cb) { diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index af199956062d67..8bc916a3a9568b 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -562,7 +562,7 @@ Writable.prototype._write = function(chunk, encoding, cb) { if (this._writev) { this._writev([{ chunk, encoding }], cb); } else { - process.nextTick(cb, new ERR_METHOD_NOT_IMPLEMENTED('_write()')); + throw new ERR_METHOD_NOT_IMPLEMENTED('_write()'); } }; diff --git a/test/parallel/test-http-outgoing-proto.js b/test/parallel/test-http-outgoing-proto.js index b037c88c6833e9..3c62eadc003ff3 100644 --- a/test/parallel/test-http-outgoing-proto.js +++ b/test/parallel/test-http-outgoing-proto.js @@ -1,5 +1,5 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const http = require('http'); @@ -62,13 +62,16 @@ assert.throws(() => { { const outgoingMessage = new OutgoingMessage(); - outgoingMessage.on('error', common.expectsError({ - code: 'ERR_METHOD_NOT_IMPLEMENTED', - name: 'Error', - message: 'The _implicitHeader() method is not implemented' - })); - - outgoingMessage.write(''); + assert.throws( + () => { + outgoingMessage.write(''); + }, + { + code: 'ERR_METHOD_NOT_IMPLEMENTED', + name: 'Error', + message: 'The _implicitHeader() method is not implemented' + } + ); } assert(OutgoingMessage.prototype.write.call({ _header: 'test' })); diff --git a/test/parallel/test-stream-readable-async-iterators.js b/test/parallel/test-stream-readable-async-iterators.js index 9149058d1537fa..55d16a1c5d363e 100644 --- a/test/parallel/test-stream-readable-async-iterators.js +++ b/test/parallel/test-stream-readable-async-iterators.js @@ -14,7 +14,9 @@ async function tests() { { const AsyncIteratorPrototype = Object.getPrototypeOf( Object.getPrototypeOf(async function* () {}).prototype); - const rs = new Readable({}); + const rs = new Readable({ + read() {} + }); assert.strictEqual( Object.getPrototypeOf(Object.getPrototypeOf(rs[Symbol.asyncIterator]())), AsyncIteratorPrototype); diff --git a/test/parallel/test-stream-readable-with-unimplemented-_read.js b/test/parallel/test-stream-readable-with-unimplemented-_read.js index 7d48c422535152..16ec2ac8cd8852 100644 --- a/test/parallel/test-stream-readable-with-unimplemented-_read.js +++ b/test/parallel/test-stream-readable-with-unimplemented-_read.js @@ -1,14 +1,18 @@ 'use strict'; -const common = require('../common'); +require('../common'); +const assert = require('assert'); const { Readable } = require('stream'); const readable = new Readable(); -readable.on('error', common.expectsError({ - code: 'ERR_METHOD_NOT_IMPLEMENTED', - name: 'Error', - message: 'The _read() method is not implemented' -})); - -readable.read(); +assert.throws( + () => { + readable.read(); + }, + { + code: 'ERR_METHOD_NOT_IMPLEMENTED', + name: 'Error', + message: 'The _read() method is not implemented' + } +); diff --git a/test/parallel/test-stream-transform-constructor-set-methods.js b/test/parallel/test-stream-transform-constructor-set-methods.js index 8a4abd6860671a..a20a1a07cffee8 100644 --- a/test/parallel/test-stream-transform-constructor-set-methods.js +++ b/test/parallel/test-stream-transform-constructor-set-methods.js @@ -1,18 +1,21 @@ 'use strict'; const common = require('../common'); -const { strictEqual } = require('assert'); +const assert = require('assert'); const { Transform } = require('stream'); const t = new Transform(); -t.on('error', common.expectsError({ - name: 'Error', - code: 'ERR_METHOD_NOT_IMPLEMENTED', - message: 'The _transform() method is not implemented' -})); - -t.end(Buffer.from('blerg')); +assert.throws( + () => { + t.end(Buffer.from('blerg')); + }, + { + name: 'Error', + code: 'ERR_METHOD_NOT_IMPLEMENTED', + message: 'The _transform() method is not implemented' + } +); const _transform = common.mustCall((chunk, _, next) => { next(); @@ -32,9 +35,9 @@ const t2 = new Transform({ final: _final }); -strictEqual(t2._transform, _transform); -strictEqual(t2._flush, _flush); -strictEqual(t2._final, _final); +assert.strictEqual(t2._transform, _transform); +assert.strictEqual(t2._flush, _flush); +assert.strictEqual(t2._final, _final); t2.end(Buffer.from('blerg')); t2.resume(); diff --git a/test/parallel/test-stream-writable-constructor-set-methods.js b/test/parallel/test-stream-writable-constructor-set-methods.js index c326428210c16b..34fda8edda9fc1 100644 --- a/test/parallel/test-stream-writable-constructor-set-methods.js +++ b/test/parallel/test-stream-writable-constructor-set-methods.js @@ -1,34 +1,36 @@ 'use strict'; const common = require('../common'); -const { strictEqual } = require('assert'); +const assert = require('assert'); const { Writable } = require('stream'); -const w = new Writable(); - -w.on('error', common.expectsError({ - name: 'Error', - code: 'ERR_METHOD_NOT_IMPLEMENTED', - message: 'The _write() method is not implemented' -})); - const bufferBlerg = Buffer.from('blerg'); +const w = new Writable(); -w.end(bufferBlerg); +assert.throws( + () => { + w.end(bufferBlerg); + }, + { + name: 'Error', + code: 'ERR_METHOD_NOT_IMPLEMENTED', + message: 'The _write() method is not implemented' + } +); const _write = common.mustCall((chunk, _, next) => { next(); }); const _writev = common.mustCall((chunks, next) => { - strictEqual(chunks.length, 2); + assert.strictEqual(chunks.length, 2); next(); }); const w2 = new Writable({ write: _write, writev: _writev }); -strictEqual(w2._write, _write); -strictEqual(w2._writev, _writev); +assert.strictEqual(w2._write, _write); +assert.strictEqual(w2._writev, _writev); w2.write(bufferBlerg); diff --git a/test/parallel/test-tls-socket-allow-half-open-option.js b/test/parallel/test-tls-socket-allow-half-open-option.js index 36449a6130c6d1..6b94c39747a31c 100644 --- a/test/parallel/test-tls-socket-allow-half-open-option.js +++ b/test/parallel/test-tls-socket-allow-half-open-option.js @@ -21,7 +21,10 @@ const tls = require('tls'); { // The option is ignored when the `socket` argument is a generic // `stream.Duplex`. - const duplex = new stream.Duplex({ allowHalfOpen: false }); + const duplex = new stream.Duplex({ + allowHalfOpen: false, + read() {} + }); const socket = new tls.TLSSocket(duplex, { allowHalfOpen: true }); assert.strictEqual(socket.allowHalfOpen, false); }