function objectMode( options, clbk ) {
	var opts;
	var cb;
	if ( arguments.length > 1 ) {
		if ( !isObject( options ) ) {
			throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
		}
		opts = assign( {}, options );
		cb = clbk;
		if ( !isFunction( clbk ) ) {
			throw new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );
		}
	} else if ( arguments.length ) {
		if ( isFunction( options ) ) {
			opts = {};
			cb = options;
		} else {
			if ( !isObject( options ) ) {
				throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
			}
			opts = assign( {}, options );
		}
	} else {
		opts = {};
	}
	opts.objectMode = true;
	if ( cb === void 0 ) {
		return new Stream( opts );
	}
	return new Stream( opts, cb );
}
Returns a debug stream with `objectMode` set to `true`.

@param {Options} [options] - stream options
@param {string} [options.name] - debug namespace
@param {NonNegativeNumber} [options.highWaterMark] - specifies the `Buffer` level for when `write()` starts returning `false`
@param {boolean} [options.allowHalfOpen=false] - specifies whether the stream should remain open even if one side ends
@param {boolean} [options.readableObjectMode=false] - specifies whether the readable side should be in object mode
@param {Callback} [clbk] - callback to invoke upon receiving data
@throws {TypeError} options argument must be an object
@throws {TypeError} must provide valid options
@throws {TypeError} must provide a valid callback argument
@returns {DebugStream} debug stream

@example
var stream = objectMode({
    'name': 'my-stream'
});

stream.write( {'value': 'a'} );
stream.write( {'value': 'b'} );
stream.write( {'value': 'c'} );
stream.end();