function isGeneratorObjectLike( value ) {
	return (
		value !== null &&
		typeof value === 'object' &&
		typeof value.next === 'function' &&
		typeof value.return === 'function' &&
		typeof value.throw === 'function'
	);
}
Tests if a value is generator object-like.

@param {*} value - value to test
@returns {boolean} boolean indicating whether value is generator object-like

@example
var gen = {
    'next': function noop() {},
    'return': function noop() {},
    'throw': function noop() {}
};
var bool = isGeneratorObjectLike( gen );
// returns true

@example
function* generateID() {
    var idx = 0;
    while ( idx < idx+1 ) {
        yield idx;
        idx += 1;
    }
}
var bool = isGeneratorObjectLike( generateID() );
// returns true

@example
var bool = isGeneratorObjectLike( {} );
// returns false

@example
var bool = isGeneratorObjectLike( null );
// returns false