| module.exports = Stream; | 
|   | 
| var Parser = require("./WritableStream.js"); | 
|   | 
| function Stream(options) { | 
|     Parser.call(this, new Cbs(this), options); | 
| } | 
|   | 
| require("inherits")(Stream, Parser); | 
|   | 
| Stream.prototype.readable = true; | 
|   | 
| function Cbs(scope) { | 
|     this.scope = scope; | 
| } | 
|   | 
| var EVENTS = require("../").EVENTS; | 
|   | 
| Object.keys(EVENTS).forEach(function(name) { | 
|     if (EVENTS[name] === 0) { | 
|         Cbs.prototype["on" + name] = function() { | 
|             this.scope.emit(name); | 
|         }; | 
|     } else if (EVENTS[name] === 1) { | 
|         Cbs.prototype["on" + name] = function(a) { | 
|             this.scope.emit(name, a); | 
|         }; | 
|     } else if (EVENTS[name] === 2) { | 
|         Cbs.prototype["on" + name] = function(a, b) { | 
|             this.scope.emit(name, a, b); | 
|         }; | 
|     } else { | 
|         throw Error("wrong number of arguments!"); | 
|     } | 
| }); |