From 510aa0b7b9f11e40445e5c0c6640e58f3a59fa90 Mon Sep 17 00:00:00 2001 From: Brian White Date: Fri, 23 Aug 2013 20:42:50 -0400 Subject: [PATCH] Parser: remove Readable proxied event for node 0.8 readable-stream proxies some events in wrap(). Since the Parser doesn't care about any events other than 'readable', we remove the troublesome proxied 'error' event. Fixes #285 --- lib/Parser.js | 19 ++++++++----------- package.json | 2 +- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/Parser.js b/lib/Parser.js index 7efa3ab..fe746b1 100644 --- a/lib/Parser.js +++ b/lib/Parser.js @@ -55,17 +55,14 @@ inherits(Parser, EventEmitter); Parser.prototype.setStream = function(stream) { if (/^v0\.8\./.test(process.version)) { - var newStream = new ReadableStream(), - wrapped = newStream.wrap(stream); - // as of now, 07/02/2013, the readable-stream module is behind in updates - // and has different behavior for the return value of wrap() compared to - // node v0.10+, so we check for that here ... - if (wrapped) - stream = wrapped; - else - stream = newStream; - } - this._stream = stream; + this._stream = (new ReadableStream()).wrap(stream); + + // since Readable.wrap() proxies events, we need to remove at least the + // proxied 'error' event since this can cause problems and Parser doesn't + // care about such events + stream._events.error.pop(); + } else + this._stream = stream; }; Parser.prototype._tryread = function(n) { diff --git a/package.json b/package.json index 4a54662..be7d229 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dependencies": { "utf7": "1.0.0", "iconv-lite": "0.2.11", - "readable-stream": "1.0.2" + "readable-stream": "1.0.15" }, "scripts": { "test": "node test/test.js"