diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 1f7bdcc2e7c..5d0e8aa243e 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -34,6 +34,8 @@ var StringDecoder; util.inherits(Readable, Stream); +const kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. @@ -828,10 +830,9 @@ Readable.prototype.wrap = function(stream) { } // proxy certain important events. - const events = ['error', 'close', 'destroy', 'pause', 'resume']; - events.forEach(function(ev) { - stream.on(ev, self.emit.bind(self, ev)); - }); + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); + } // when we try to consume some more bytes, simply unpause the // underlying stream. diff --git a/lib/_stream_wrap.js b/lib/_stream_wrap.js index fbc32965980..2ddf15069e5 100644 --- a/lib/_stream_wrap.js +++ b/lib/_stream_wrap.js @@ -118,9 +118,8 @@ StreamWrap.prototype.doWrite = function doWrite(req, bufs) { const item = self._enqueue('write', req); self.stream.cork(); - bufs.forEach(function(buf) { - self.stream.write(buf, done); - }); + for (var n = 0; n < bufs.length; n++) + self.stream.write(bufs[n], done); self.stream.uncork(); function done(err) {