diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index d6af8589f3bc85..e33441971fe746 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -13,6 +13,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. @@ -811,10 +813,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 fbc32965980e96..2ddf15069e5361 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) {