addEvent = (elem, event, fn, saveListener) => {
    elem.addEventListener(event, fn);

    /**
     * Keep track of specific event listeners
     * that must be removed on `.reset()`
     */
    if (saveListener) {
        globalObj._state._dataEventListeners.push({
            _element: elem,
            _event: event,
            _listener: fn
        });
    }
}
Add event listener to dom object (cross browser function)
@param {Element} elem
@param {keyof WindowEventMap} event
@param {EventListener} fn
@param {boolean} [saveListener]