lib/buffering.js
function Buffering(options) {
    events.EventEmitter.call(this);

    options = options || {};

    if (options.useUnique) {
        var newOptions = {};
        Object.keys(options).forEach(function(key) {
            if (key != 'useUnique') newOptions[key] = options[key];
        });
        return new UniqueBuffering(newOptions);
    }

    this._timeThreshold = (typeof options.timeThreshold === 'undefined') ? -1 : options.timeThreshold;
    this._sizeThreshold = (typeof options.sizeThreshold === 'undefined') ? -1 : options.sizeThreshold;
    this._data = [];
    this._flushTimer = null;
    this._paused = false;
    this._resumeTimer = null;
    this._flushingBySize = false;
}
function Buffering(options) {
    events.EventEmitter.call(this);

    options = options || {};

    if (options.useUnique) {
        var newOptions = {};
        Object.keys(options).forEach(function(key) {
            if (key != 'useUnique') newOptions[key] = options[key];
        });
        return new UniqueBuffering(newOptions);
    }

    this._timeThreshold = (typeof options.timeThreshold === 'undefined') ? -1 : options.timeThreshold;
    this._sizeThreshold = (typeof options.sizeThreshold === 'undefined') ? -1 : options.sizeThreshold;
    this._data = [];
    this._flushTimer = null;
    this._paused = false;
    this._resumeTimer = null;
    this._flushingBySize = false;
}
function Buffering ( options ) { events . EventEmitter . call ( this ) ; options = options || { } ; if ( options . useUnique ) { var newOptions = { } ; Object . keys ( options ) . forEach ( function ( key ) { if ( key != 'useUnique' ) newOptions [ key ] = options [ key ] ; } ) ; return new UniqueBuffering ( newOptions ) ; } this . _timeThreshold = ( typeof options . timeThreshold === 'undefined' ) ? - 1 : options . timeThreshold ; this . _sizeThreshold = ( typeof options . sizeThreshold === 'undefined' ) ? - 1 : options . sizeThreshold ; this . _data = [ ] ; this . _flushTimer = null ; this . _paused = false ; this . _resumeTimer = null ; this . _flushingBySize = false ; }
ES 5+ will handle null and undefined
ES 5 + will handle null and undefined