lib/passthrough.js
function ZPassThrough(options) {
	if(options) {
		if(options.objectMode) {
			options.readableObjectMode = true;
			options.writableObjectMode = true;
		}
		if(options.readableObjectMode && options.writableObjectMode) {
			options.objectMode = true;
		}
	}
	PassThrough.call(this, options);
	// note: exclamation marks are used to convert to booleans
	if(options && !options.objectMode && (!options.readableObjectMode) !== (!options.writableObjectMode)) {
		this._writableState.objectMode = !!options.writableObjectMode;
		this._readableState.objectMode = !!options.readableObjectMode;
	}
	if(options && options.readableObjectMode) {
		this._readableState.highWaterMark = 16;
	}
	if(options && options.writableObjectMode) {
		this._writableState.highWaterMark = 16;
	}
	streamMixins.call(this, PassThrough.prototype, options);
	readableMixins.call(this, options);
	writableMixins.call(this, options);
}
function ZPassThrough(options) {
	if(options) {
		if(options.objectMode) {
			options.readableObjectMode = true;
			options.writableObjectMode = true;
		}
		if(options.readableObjectMode && options.writableObjectMode) {
			options.objectMode = true;
		}
	}
	PassThrough.call(this, options);
	// note: exclamation marks are used to convert to booleans
	if(options && !options.objectMode && (!options.readableObjectMode) !== (!options.writableObjectMode)) {
		this._writableState.objectMode = !!options.writableObjectMode;
		this._readableState.objectMode = !!options.readableObjectMode;
	}
	if(options && options.readableObjectMode) {
		this._readableState.highWaterMark = 16;
	}
	if(options && options.writableObjectMode) {
		this._writableState.highWaterMark = 16;
	}
	streamMixins.call(this, PassThrough.prototype, options);
	readableMixins.call(this, options);
	writableMixins.call(this, options);
}
function ZPassThrough ( options ) { if ( options ) { if ( options . objectMode ) { options . readableObjectMode = true ; options . writableObjectMode = true ; } if ( options . readableObjectMode && options . writableObjectMode ) { options . objectMode = true ; } } PassThrough . call ( this , options ) ; // note: exclamation marks are used to convert to booleans if ( options && ! options . objectMode && ( ! options . readableObjectMode ) !== ( ! options . writableObjectMode ) ) { this . _writableState . objectMode = ! ! options . writableObjectMode ; this . _readableState . objectMode = ! ! options . readableObjectMode ; } if ( options && options . readableObjectMode ) { this . _readableState . highWaterMark = 16 ; } if ( options && options . writableObjectMode ) { this . _writableState . highWaterMark = 16 ; } streamMixins . call ( this , PassThrough . prototype , options ) ; readableMixins . call ( this , options ) ; writableMixins . call ( this , options ) ; }
ZPassThrough writes everything written to it into the other side

@class ZPassThrough
@constructor
@extends PassThrough
@uses _Stream
@uses _Readable
@uses _Writable
@param {Object} [options] - Stream options
ZPassThrough writes everything written to it into the other side