function toggle(key) {

    const oHandler = on(key);
    const rHandler = remove(key);

    function down(listener) {
        return (
            oHandler.
            down(listener),
            controls(listener, 'down')
        );
    };

    function up(listener) {
        return (
            oHandler.
            up(listener),
            controls(listener, 'up')
        );
    };

    function controls(listener, n) {
        const disable = () => { rHandler[n](listener) };
        const enable = () => { oHandler[n](listener) };
    
        return { disable, enable };
    };
    
    return { down, up };
}
// ability to enable and disable listeners.
ability to enable and disable listeners.
ability to enable and disable listeners .
function toggle(key) {
    const oHandler = on(key);
    const rHandler = remove(key);
    function down(listener) {
        return (
            oHandler.
            down(listener),
            controls(listener, 'down')
        );
    };
    function up(listener) {
        return (
            oHandler.
            up(listener),
            controls(listener, 'up')
        );
    };
    function controls(listener, n) {
        const disable = () => { rHandler[n](listener) };
        const enable = () => { oHandler[n](listener) };
        return { disable, enable };
    };
    return { down, up };
}
function toggle ( key ) { const oHandler = on ( key ) ; const rHandler = remove ( key ) ; function down ( listener ) { return ( oHandler . down ( listener ) , controls ( listener , 'down' ) ) ; } ; function up ( listener ) { return ( oHandler . up ( listener ) , controls ( listener , 'up' ) ) ; } ; function controls ( listener , n ) { const disable = ( ) => { rHandler [ n ] ( listener ) } ; const enable = ( ) => { oHandler [ n ] ( listener ) } ; return { disable , enable } ; } ; return { down , up } ; }
ability to enable and disable listeners.
ability to enable and disable listeners .