function merge(x, y) {
    for (const key of Object.keys(y)) {
        if (typeof x[key] === "function") {
            if (x[key]._handlers == null) {
                const fs = [x[key], y[key]]
                x[key] = dispatch.bind(null, fs)
                x[key]._handlers = fs
            } else {
                x[key]._handlers.push(y[key])
            }
        } else {
            x[key] = y[key]
        }
    }
    return x
}
function merge(x, y) {
    for (const key of Object.keys(y)) {
        if (typeof x[key] === "function") {
            if (x[key]._handlers == null) {
                const fs = [x[key], y[key]]
                x[key] = dispatch.bind(null, fs)
                x[key]._handlers = fs
            } else {
                x[key]._handlers.push(y[key])
            }
        } else {
            x[key] = y[key]
        }
    }
    return x
}
function merge ( x , y ) { for ( const key of Object . keys ( y ) ) { if ( typeof x [ key ] === "function" ) { if ( x [ key ] . _handlers == null ) { const fs = [ x [ key ] , y [ key ] ] x [ key ] = dispatch . bind ( null , fs ) x [ key ] . _handlers = fs } else { x [ key ] . _handlers . push ( y [ key ] ) } } else { x [ key ] = y [ key ] } } return x }
Merge two visitors.
@param {Visitor} x The visitor which is assigned.
@param {Visitor} y The visitor which is assigning.
@returns {Visitor} `x`.
Merge two visitors .