| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923 | diff --git a/lib/_stream_duplex.js b/lib/_stream_duplex.jsindex c5a741c..a2e0d8e 100644--- a/lib/_stream_duplex.js+++ b/lib/_stream_duplex.js@@ -26,8 +26,8 @@  module.exports = Duplex; var util = require('util');-var Readable = require('_stream_readable');-var Writable = require('_stream_writable');+var Readable = require('./_stream_readable');+var Writable = require('./_stream_writable');  util.inherits(Duplex, Readable); diff --git a/lib/_stream_passthrough.js b/lib/_stream_passthrough.jsindex a5e9864..330c247 100644--- a/lib/_stream_passthrough.js+++ b/lib/_stream_passthrough.js@@ -25,7 +25,7 @@  module.exports = PassThrough; -var Transform = require('_stream_transform');+var Transform = require('./_stream_transform'); var util = require('util'); util.inherits(PassThrough, Transform); diff --git a/lib/_stream_readable.js b/lib/_stream_readable.jsindex 0c3fe3e..90a8298 100644--- a/lib/_stream_readable.js+++ b/lib/_stream_readable.js@@ -23,10 +23,34 @@ module.exports = Readable; Readable.ReadableState = ReadableState;  var EE = require('events').EventEmitter;+if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {+  return emitter.listeners(type).length;+};++if (!global.setImmediate) global.setImmediate = function setImmediate(fn) {+  return setTimeout(fn, 0);+};+if (!global.clearImmediate) global.clearImmediate = function clearImmediate(i) {+  return clearTimeout(i);+};+ var Stream = require('stream'); var util = require('util');+if (!util.isUndefined) {+  var utilIs = require('core-util-is');+  for (var f in utilIs) {+    util[f] = utilIs[f];+  }+} var StringDecoder;-var debug = util.debuglog('stream');+var debug;+if (util.debuglog)+  debug = util.debuglog('stream');+else try {+  debug = require('debuglog')('stream');+} catch (er) {+  debug = function() {};+}  util.inherits(Readable, Stream); @@ -380,7 +404,7 @@ function chunkInvalid(state, chunk) {   function onEofChunk(stream, state) {-  if (state.decoder && !state.ended) {+  if (state.decoder && !state.ended && state.decoder.end) {     var chunk = state.decoder.end();     if (chunk && chunk.length) {       state.buffer.push(chunk);diff --git a/lib/_stream_transform.js b/lib/_stream_transform.jsindex b1f9fcc..b0caf57 100644--- a/lib/_stream_transform.js+++ b/lib/_stream_transform.js@@ -64,8 +64,14 @@  module.exports = Transform; -var Duplex = require('_stream_duplex');+var Duplex = require('./_stream_duplex'); var util = require('util');+if (!util.isUndefined) {+  var utilIs = require('core-util-is');+  for (var f in utilIs) {+    util[f] = utilIs[f];+  }+} util.inherits(Transform, Duplex);  diff --git a/lib/_stream_writable.js b/lib/_stream_writable.jsindex ba2e920..f49288b 100644--- a/lib/_stream_writable.js+++ b/lib/_stream_writable.js@@ -27,6 +27,12 @@ module.exports = Writable; Writable.WritableState = WritableState;  var util = require('util');+if (!util.isUndefined) {+  var utilIs = require('core-util-is');+  for (var f in utilIs) {+    util[f] = utilIs[f];+  }+} var Stream = require('stream');  util.inherits(Writable, Stream);@@ -119,7 +125,7 @@ function WritableState(options, stream) { function Writable(options) {   // Writable ctor is applied to Duplexes, though they're not   // instanceof Writable, they're instanceof Readable.-  if (!(this instanceof Writable) && !(this instanceof Stream.Duplex))+  if (!(this instanceof Writable) && !(this instanceof require('./_stream_duplex')))     return new Writable(options);    this._writableState = new WritableState(options, this);diff --git a/test/simple/test-stream-big-push.js b/test/simple/test-stream-big-push.jsindex e3787e4..8cd2127 100644--- a/test/simple/test-stream-big-push.js+++ b/test/simple/test-stream-big-push.js@@ -21,7 +21,7 @@  var common = require('../common'); var assert = require('assert');-var stream = require('stream');+var stream = require('../../'); var str = 'asdfasdfasdfasdfasdf';  var r = new stream.Readable({diff --git a/test/simple/test-stream-end-paused.js b/test/simple/test-stream-end-paused.jsindex bb73777..d40efc7 100644--- a/test/simple/test-stream-end-paused.js+++ b/test/simple/test-stream-end-paused.js@@ -25,7 +25,7 @@ var gotEnd = false;  // Make sure we don't miss the end event for paused 0-length streams -var Readable = require('stream').Readable;+var Readable = require('../../').Readable; var stream = new Readable(); var calledRead = false; stream._read = function() {diff --git a/test/simple/test-stream-pipe-after-end.js b/test/simple/test-stream-pipe-after-end.jsindex b46ee90..0be8366 100644--- a/test/simple/test-stream-pipe-after-end.js+++ b/test/simple/test-stream-pipe-after-end.js@@ -22,8 +22,8 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('_stream_readable');-var Writable = require('_stream_writable');+var Readable = require('../../lib/_stream_readable');+var Writable = require('../../lib/_stream_writable'); var util = require('util');  util.inherits(TestReadable, Readable);diff --git a/test/simple/test-stream-pipe-cleanup.js b/test/simple/test-stream-pipe-cleanup.jsdeleted file mode 100644index f689358..0000000--- a/test/simple/test-stream-pipe-cleanup.js+++ /dev/null@@ -1,122 +0,0 @@-// Copyright Joyent, Inc. and other Node contributors.-//-// Permission is hereby granted, free of charge, to any person obtaining a-// copy of this software and associated documentation files (the-// "Software"), to deal in the Software without restriction, including-// without limitation the rights to use, copy, modify, merge, publish,-// distribute, sublicense, and/or sell copies of the Software, and to permit-// persons to whom the Software is furnished to do so, subject to the-// following conditions:-//-// The above copyright notice and this permission notice shall be included-// in all copies or substantial portions of the Software.-//-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE-// USE OR OTHER DEALINGS IN THE SOFTWARE.--// This test asserts that Stream.prototype.pipe does not leave listeners-// hanging on the source or dest.--var common = require('../common');-var stream = require('stream');-var assert = require('assert');-var util = require('util');--function Writable() {-  this.writable = true;-  this.endCalls = 0;-  stream.Stream.call(this);-}-util.inherits(Writable, stream.Stream);-Writable.prototype.end = function() {-  this.endCalls++;-};--Writable.prototype.destroy = function() {-  this.endCalls++;-};--function Readable() {-  this.readable = true;-  stream.Stream.call(this);-}-util.inherits(Readable, stream.Stream);--function Duplex() {-  this.readable = true;-  Writable.call(this);-}-util.inherits(Duplex, Writable);--var i = 0;-var limit = 100;--var w = new Writable();--var r;--for (i = 0; i < limit; i++) {-  r = new Readable();-  r.pipe(w);-  r.emit('end');-}-assert.equal(0, r.listeners('end').length);-assert.equal(limit, w.endCalls);--w.endCalls = 0;--for (i = 0; i < limit; i++) {-  r = new Readable();-  r.pipe(w);-  r.emit('close');-}-assert.equal(0, r.listeners('close').length);-assert.equal(limit, w.endCalls);--w.endCalls = 0;--r = new Readable();--for (i = 0; i < limit; i++) {-  w = new Writable();-  r.pipe(w);-  w.emit('close');-}-assert.equal(0, w.listeners('close').length);--r = new Readable();-w = new Writable();-var d = new Duplex();-r.pipe(d); // pipeline A-d.pipe(w); // pipeline B-assert.equal(r.listeners('end').length, 2);   // A.onend, A.cleanup-assert.equal(r.listeners('close').length, 2); // A.onclose, A.cleanup-assert.equal(d.listeners('end').length, 2);   // B.onend, B.cleanup-assert.equal(d.listeners('close').length, 3); // A.cleanup, B.onclose, B.cleanup-assert.equal(w.listeners('end').length, 0);-assert.equal(w.listeners('close').length, 1); // B.cleanup--r.emit('end');-assert.equal(d.endCalls, 1);-assert.equal(w.endCalls, 0);-assert.equal(r.listeners('end').length, 0);-assert.equal(r.listeners('close').length, 0);-assert.equal(d.listeners('end').length, 2);   // B.onend, B.cleanup-assert.equal(d.listeners('close').length, 2); // B.onclose, B.cleanup-assert.equal(w.listeners('end').length, 0);-assert.equal(w.listeners('close').length, 1); // B.cleanup--d.emit('end');-assert.equal(d.endCalls, 1);-assert.equal(w.endCalls, 1);-assert.equal(r.listeners('end').length, 0);-assert.equal(r.listeners('close').length, 0);-assert.equal(d.listeners('end').length, 0);-assert.equal(d.listeners('close').length, 0);-assert.equal(w.listeners('end').length, 0);-assert.equal(w.listeners('close').length, 0);diff --git a/test/simple/test-stream-pipe-error-handling.js b/test/simple/test-stream-pipe-error-handling.jsindex c5d724b..c7d6b7d 100644--- a/test/simple/test-stream-pipe-error-handling.js+++ b/test/simple/test-stream-pipe-error-handling.js@@ -21,7 +21,7 @@  var common = require('../common'); var assert = require('assert');-var Stream = require('stream').Stream;+var Stream = require('../../').Stream;  (function testErrorListenerCatches() {   var source = new Stream();diff --git a/test/simple/test-stream-pipe-event.js b/test/simple/test-stream-pipe-event.jsindex cb9d5fe..56f8d61 100644--- a/test/simple/test-stream-pipe-event.js+++ b/test/simple/test-stream-pipe-event.js@@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE.  var common = require('../common');-var stream = require('stream');+var stream = require('../../'); var assert = require('assert'); var util = require('util'); diff --git a/test/simple/test-stream-push-order.js b/test/simple/test-stream-push-order.jsindex f2e6ec2..a5c9bf9 100644--- a/test/simple/test-stream-push-order.js+++ b/test/simple/test-stream-push-order.js@@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE.  var common = require('../common.js');-var Readable = require('stream').Readable;+var Readable = require('../../').Readable; var assert = require('assert');  var s = new Readable({diff --git a/test/simple/test-stream-push-strings.js b/test/simple/test-stream-push-strings.jsindex 06f43dc..1701a9a 100644--- a/test/simple/test-stream-push-strings.js+++ b/test/simple/test-stream-push-strings.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('stream').Readable;+var Readable = require('../../').Readable; var util = require('util');  util.inherits(MyStream, Readable);diff --git a/test/simple/test-stream-readable-event.js b/test/simple/test-stream-readable-event.jsindex ba6a577..a8e6f7b 100644--- a/test/simple/test-stream-readable-event.js+++ b/test/simple/test-stream-readable-event.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('stream').Readable;+var Readable = require('../../').Readable;  (function first() {   // First test, not reading when the readable is added.diff --git a/test/simple/test-stream-readable-flow-recursion.js b/test/simple/test-stream-readable-flow-recursion.jsindex 2891ad6..11689ba 100644--- a/test/simple/test-stream-readable-flow-recursion.js+++ b/test/simple/test-stream-readable-flow-recursion.js@@ -27,7 +27,7 @@ var assert = require('assert'); // more data continuously, but without triggering a nextTick // warning or RangeError. -var Readable = require('stream').Readable;+var Readable = require('../../').Readable;  // throw an error if we trigger a nextTick warning. process.throwDeprecation = true;diff --git a/test/simple/test-stream-unshift-empty-chunk.js b/test/simple/test-stream-unshift-empty-chunk.jsindex 0c96476..7827538 100644--- a/test/simple/test-stream-unshift-empty-chunk.js+++ b/test/simple/test-stream-unshift-empty-chunk.js@@ -24,7 +24,7 @@ var assert = require('assert');  // This test verifies that stream.unshift(Buffer(0)) or  // stream.unshift('') does not set state.reading=false.-var Readable = require('stream').Readable;+var Readable = require('../../').Readable;  var r = new Readable(); var nChunks = 10;diff --git a/test/simple/test-stream-unshift-read-race.js b/test/simple/test-stream-unshift-read-race.jsindex 83fd9fa..17c18aa 100644--- a/test/simple/test-stream-unshift-read-race.js+++ b/test/simple/test-stream-unshift-read-race.js@@ -29,7 +29,7 @@ var assert = require('assert'); // 3. push() after the EOF signaling null is an error. // 4. _read() is not called after pushing the EOF null chunk. -var stream = require('stream');+var stream = require('../../'); var hwm = 10; var r = stream.Readable({ highWaterMark: hwm }); var chunks = 10;@@ -51,7 +51,14 @@ r._read = function(n) {    function push(fast) {     assert(!pushedNull, 'push() after null push');-    var c = pos >= data.length ? null : data.slice(pos, pos + n);+    var c;+    if (pos >= data.length)+      c = null;+    else {+      if (n + pos > data.length)+        n = data.length - pos;+      c = data.slice(pos, pos + n);+    }     pushedNull = c === null;     if (fast) {       pos += n;diff --git a/test/simple/test-stream-writev.js b/test/simple/test-stream-writev.jsindex 5b49e6e..b5321f3 100644--- a/test/simple/test-stream-writev.js+++ b/test/simple/test-stream-writev.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var stream = require('stream');+var stream = require('../../');  var queue = []; for (var decode = 0; decode < 2; decode++) {diff --git a/test/simple/test-stream2-basic.js b/test/simple/test-stream2-basic.jsindex 3814bf0..248c1be 100644--- a/test/simple/test-stream2-basic.js+++ b/test/simple/test-stream2-basic.js@@ -21,7 +21,7 @@   var common = require('../common.js');-var R = require('_stream_readable');+var R = require('../../lib/_stream_readable'); var assert = require('assert');  var util = require('util');diff --git a/test/simple/test-stream2-compatibility.js b/test/simple/test-stream2-compatibility.jsindex 6cdd4e9..f0fa84b 100644--- a/test/simple/test-stream2-compatibility.js+++ b/test/simple/test-stream2-compatibility.js@@ -21,7 +21,7 @@   var common = require('../common.js');-var R = require('_stream_readable');+var R = require('../../lib/_stream_readable'); var assert = require('assert');  var util = require('util');diff --git a/test/simple/test-stream2-finish-pipe.js b/test/simple/test-stream2-finish-pipe.jsindex 39b274f..006a19b 100644--- a/test/simple/test-stream2-finish-pipe.js+++ b/test/simple/test-stream2-finish-pipe.js@@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE.  var common = require('../common.js');-var stream = require('stream');+var stream = require('../../'); var Buffer = require('buffer').Buffer;  var r = new stream.Readable();diff --git a/test/simple/test-stream2-fs.js b/test/simple/test-stream2-fs.jsdeleted file mode 100644index e162406..0000000--- a/test/simple/test-stream2-fs.js+++ /dev/null@@ -1,72 +0,0 @@-// Copyright Joyent, Inc. and other Node contributors.-//-// Permission is hereby granted, free of charge, to any person obtaining a-// copy of this software and associated documentation files (the-// "Software"), to deal in the Software without restriction, including-// without limitation the rights to use, copy, modify, merge, publish,-// distribute, sublicense, and/or sell copies of the Software, and to permit-// persons to whom the Software is furnished to do so, subject to the-// following conditions:-//-// The above copyright notice and this permission notice shall be included-// in all copies or substantial portions of the Software.-//-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE-// USE OR OTHER DEALINGS IN THE SOFTWARE.---var common = require('../common.js');-var R = require('_stream_readable');-var assert = require('assert');--var fs = require('fs');-var FSReadable = fs.ReadStream;--var path = require('path');-var file = path.resolve(common.fixturesDir, 'x1024.txt');--var size = fs.statSync(file).size;--var expectLengths = [1024];--var util = require('util');-var Stream = require('stream');--util.inherits(TestWriter, Stream);--function TestWriter() {-  Stream.apply(this);-  this.buffer = [];-  this.length = 0;-}--TestWriter.prototype.write = function(c) {-  this.buffer.push(c.toString());-  this.length += c.length;-  return true;-};--TestWriter.prototype.end = function(c) {-  if (c) this.buffer.push(c.toString());-  this.emit('results', this.buffer);-}--var r = new FSReadable(file);-var w = new TestWriter();--w.on('results', function(res) {-  console.error(res, w.length);-  assert.equal(w.length, size);-  var l = 0;-  assert.deepEqual(res.map(function (c) {-    return c.length;-  }), expectLengths);-  console.log('ok');-});--r.pipe(w);diff --git a/test/simple/test-stream2-httpclient-response-end.js b/test/simple/test-stream2-httpclient-response-end.jsdeleted file mode 100644index 15cffc2..0000000--- a/test/simple/test-stream2-httpclient-response-end.js+++ /dev/null@@ -1,52 +0,0 @@-// Copyright Joyent, Inc. and other Node contributors.-//-// Permission is hereby granted, free of charge, to any person obtaining a-// copy of this software and associated documentation files (the-// "Software"), to deal in the Software without restriction, including-// without limitation the rights to use, copy, modify, merge, publish,-// distribute, sublicense, and/or sell copies of the Software, and to permit-// persons to whom the Software is furnished to do so, subject to the-// following conditions:-//-// The above copyright notice and this permission notice shall be included-// in all copies or substantial portions of the Software.-//-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE-// USE OR OTHER DEALINGS IN THE SOFTWARE.--var common = require('../common.js');-var assert = require('assert');-var http = require('http');-var msg = 'Hello';-var readable_event = false;-var end_event = false;-var server = http.createServer(function(req, res) {-  res.writeHead(200, {'Content-Type': 'text/plain'});-  res.end(msg);-}).listen(common.PORT, function() {-  http.get({port: common.PORT}, function(res) {-    var data = '';-    res.on('readable', function() {-      console.log('readable event');-      readable_event = true;-      data += res.read();-    });-    res.on('end', function() {-      console.log('end event');-      end_event = true;-      assert.strictEqual(msg, data);-      server.close();-    });-  });-});--process.on('exit', function() {-  assert(readable_event);-  assert(end_event);-});-diff --git a/test/simple/test-stream2-large-read-stall.js b/test/simple/test-stream2-large-read-stall.jsindex 2fbfbca..667985b 100644--- a/test/simple/test-stream2-large-read-stall.js+++ b/test/simple/test-stream2-large-read-stall.js@@ -30,7 +30,7 @@ var PUSHSIZE = 20; var PUSHCOUNT = 1000; var HWM = 50; -var Readable = require('stream').Readable;+var Readable = require('../../').Readable; var r = new Readable({   highWaterMark: HWM });@@ -39,23 +39,23 @@ var rs = r._readableState; r._read = push;  r.on('readable', function() {-  console.error('>> readable');+  //console.error('>> readable');   do {-    console.error('  > read(%d)', READSIZE);+    //console.error('  > read(%d)', READSIZE);     var ret = r.read(READSIZE);-    console.error('  < %j (%d remain)', ret && ret.length, rs.length);+    //console.error('  < %j (%d remain)', ret && ret.length, rs.length);   } while (ret && ret.length === READSIZE); -  console.error('<< after read()',-                ret && ret.length,-                rs.needReadable,-                rs.length);+  //console.error('<< after read()',+  //              ret && ret.length,+  //              rs.needReadable,+  //              rs.length); });  var endEmitted = false; r.on('end', function() {   endEmitted = true;-  console.error('end');+  //console.error('end'); });  var pushes = 0;@@ -64,11 +64,11 @@ function push() {     return;    if (pushes++ === PUSHCOUNT) {-    console.error('   push(EOF)');+    //console.error('   push(EOF)');     return r.push(null);   } -  console.error('   push #%d', pushes);+  //console.error('   push #%d', pushes);   if (r.push(new Buffer(PUSHSIZE)))     setTimeout(push); }diff --git a/test/simple/test-stream2-objects.js b/test/simple/test-stream2-objects.jsindex 3e6931d..ff47d89 100644--- a/test/simple/test-stream2-objects.js+++ b/test/simple/test-stream2-objects.js@@ -21,8 +21,8 @@   var common = require('../common.js');-var Readable = require('_stream_readable');-var Writable = require('_stream_writable');+var Readable = require('../../lib/_stream_readable');+var Writable = require('../../lib/_stream_writable'); var assert = require('assert');  // tiny node-tap lookalike.diff --git a/test/simple/test-stream2-pipe-error-handling.js b/test/simple/test-stream2-pipe-error-handling.jsindex cf7531c..e3f3e4e 100644--- a/test/simple/test-stream2-pipe-error-handling.js+++ b/test/simple/test-stream2-pipe-error-handling.js@@ -21,7 +21,7 @@  var common = require('../common'); var assert = require('assert');-var stream = require('stream');+var stream = require('../../');  (function testErrorListenerCatches() {   var count = 1000;diff --git a/test/simple/test-stream2-pipe-error-once-listener.js b/test/simple/test-stream2-pipe-error-once-listener.jsindex 5e8e3cb..53b2616 100755--- a/test/simple/test-stream2-pipe-error-once-listener.js+++ b/test/simple/test-stream2-pipe-error-once-listener.js@@ -24,7 +24,7 @@ var common = require('../common.js'); var assert = require('assert');  var util = require('util');-var stream = require('stream');+var stream = require('../../');   var Read = function() {diff --git a/test/simple/test-stream2-push.js b/test/simple/test-stream2-push.jsindex b63edc3..eb2b0e9 100644--- a/test/simple/test-stream2-push.js+++ b/test/simple/test-stream2-push.js@@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE.  var common = require('../common.js');-var stream = require('stream');+var stream = require('../../'); var Readable = stream.Readable; var Writable = stream.Writable; var assert = require('assert');diff --git a/test/simple/test-stream2-read-sync-stack.js b/test/simple/test-stream2-read-sync-stack.jsindex e8a7305..9740a47 100644--- a/test/simple/test-stream2-read-sync-stack.js+++ b/test/simple/test-stream2-read-sync-stack.js@@ -21,7 +21,7 @@  var common = require('../common'); var assert = require('assert');-var Readable = require('stream').Readable;+var Readable = require('../../').Readable; var r = new Readable(); var N = 256 * 1024; diff --git a/test/simple/test-stream2-readable-empty-buffer-no-eof.js b/test/simple/test-stream2-readable-empty-buffer-no-eof.jsindex cd30178..4b1659d 100644--- a/test/simple/test-stream2-readable-empty-buffer-no-eof.js+++ b/test/simple/test-stream2-readable-empty-buffer-no-eof.js@@ -22,10 +22,9 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('stream').Readable;+var Readable = require('../../').Readable;  test1();-test2();  function test1() {   var r = new Readable();@@ -88,31 +87,3 @@ function test1() {     console.log('ok');   }); }--function test2() {-  var r = new Readable({ encoding: 'base64' });-  var reads = 5;-  r._read = function(n) {-    if (!reads--)-      return r.push(null); // EOF-    else-      return r.push(new Buffer('x'));-  };--  var results = [];-  function flow() {-    var chunk;-    while (null !== (chunk = r.read()))-      results.push(chunk + '');-  }-  r.on('readable', flow);-  r.on('end', function() {-    results.push('EOF');-  });-  flow();--  process.on('exit', function() {-    assert.deepEqual(results, [ 'eHh4', 'eHg=', 'EOF' ]);-    console.log('ok');-  });-}diff --git a/test/simple/test-stream2-readable-from-list.js b/test/simple/test-stream2-readable-from-list.jsindex 7c96ffe..04a96f5 100644--- a/test/simple/test-stream2-readable-from-list.js+++ b/test/simple/test-stream2-readable-from-list.js@@ -21,7 +21,7 @@  var assert = require('assert'); var common = require('../common.js');-var fromList = require('_stream_readable')._fromList;+var fromList = require('../../lib/_stream_readable')._fromList;  // tiny node-tap lookalike. var tests = [];diff --git a/test/simple/test-stream2-readable-legacy-drain.js b/test/simple/test-stream2-readable-legacy-drain.jsindex 675da8e..51fd3d5 100644--- a/test/simple/test-stream2-readable-legacy-drain.js+++ b/test/simple/test-stream2-readable-legacy-drain.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var Stream = require('stream');+var Stream = require('../../'); var Readable = Stream.Readable;  var r = new Readable();diff --git a/test/simple/test-stream2-readable-non-empty-end.js b/test/simple/test-stream2-readable-non-empty-end.jsindex 7314ae7..c971898 100644--- a/test/simple/test-stream2-readable-non-empty-end.js+++ b/test/simple/test-stream2-readable-non-empty-end.js@@ -21,7 +21,7 @@  var assert = require('assert'); var common = require('../common.js');-var Readable = require('_stream_readable');+var Readable = require('../../lib/_stream_readable');  var len = 0; var chunks = new Array(10);diff --git a/test/simple/test-stream2-readable-wrap-empty.js b/test/simple/test-stream2-readable-wrap-empty.jsindex 2e5cf25..fd8a3dc 100644--- a/test/simple/test-stream2-readable-wrap-empty.js+++ b/test/simple/test-stream2-readable-wrap-empty.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('_stream_readable');+var Readable = require('../../lib/_stream_readable'); var EE = require('events').EventEmitter;  var oldStream = new EE();diff --git a/test/simple/test-stream2-readable-wrap.js b/test/simple/test-stream2-readable-wrap.jsindex 90eea01..6b177f7 100644--- a/test/simple/test-stream2-readable-wrap.js+++ b/test/simple/test-stream2-readable-wrap.js@@ -22,8 +22,8 @@ var common = require('../common'); var assert = require('assert'); -var Readable = require('_stream_readable');-var Writable = require('_stream_writable');+var Readable = require('../../lib/_stream_readable');+var Writable = require('../../lib/_stream_writable'); var EE = require('events').EventEmitter;  var testRuns = 0, completedRuns = 0;diff --git a/test/simple/test-stream2-set-encoding.js b/test/simple/test-stream2-set-encoding.jsindex 5d2c32a..685531b 100644--- a/test/simple/test-stream2-set-encoding.js+++ b/test/simple/test-stream2-set-encoding.js@@ -22,7 +22,7 @@  var common = require('../common.js'); var assert = require('assert');-var R = require('_stream_readable');+var R = require('../../lib/_stream_readable'); var util = require('util');  // tiny node-tap lookalike.diff --git a/test/simple/test-stream2-transform.js b/test/simple/test-stream2-transform.jsindex 9c9ddd8..a0cacc6 100644--- a/test/simple/test-stream2-transform.js+++ b/test/simple/test-stream2-transform.js@@ -21,8 +21,8 @@  var assert = require('assert'); var common = require('../common.js');-var PassThrough = require('_stream_passthrough');-var Transform = require('_stream_transform');+var PassThrough = require('../../').PassThrough;+var Transform = require('../../').Transform;  // tiny node-tap lookalike. var tests = [];diff --git a/test/simple/test-stream2-unpipe-drain.js b/test/simple/test-stream2-unpipe-drain.jsindex d66dc3c..365b327 100644--- a/test/simple/test-stream2-unpipe-drain.js+++ b/test/simple/test-stream2-unpipe-drain.js@@ -22,7 +22,7 @@  var common = require('../common.js'); var assert = require('assert');-var stream = require('stream');+var stream = require('../../'); var crypto = require('crypto');  var util = require('util');diff --git a/test/simple/test-stream2-unpipe-leak.js b/test/simple/test-stream2-unpipe-leak.jsindex 99f8746..17c92ae 100644--- a/test/simple/test-stream2-unpipe-leak.js+++ b/test/simple/test-stream2-unpipe-leak.js@@ -22,7 +22,7 @@  var common = require('../common.js'); var assert = require('assert');-var stream = require('stream');+var stream = require('../../');  var chunk = new Buffer('hallo'); diff --git a/test/simple/test-stream2-writable.js b/test/simple/test-stream2-writable.jsindex 704100c..209c3a6 100644--- a/test/simple/test-stream2-writable.js+++ b/test/simple/test-stream2-writable.js@@ -20,8 +20,8 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE.  var common = require('../common.js');-var W = require('_stream_writable');-var D = require('_stream_duplex');+var W = require('../../').Writable;+var D = require('../../').Duplex; var assert = require('assert');  var util = require('util');diff --git a/test/simple/test-stream3-pause-then-read.js b/test/simple/test-stream3-pause-then-read.jsindex b91bde3..2f72c15 100644--- a/test/simple/test-stream3-pause-then-read.js+++ b/test/simple/test-stream3-pause-then-read.js@@ -22,7 +22,7 @@ var common = require('../common'); var assert = require('assert'); -var stream = require('stream');+var stream = require('../../'); var Readable = stream.Readable; var Writable = stream.Writable; 
 |