function fire(elem, event, details) {
	let evt = new window.Event(event, details);
	elem.dispatchEvent(evt);
	return tick();
}
@param {HTMLElement} elem
@param {String} event
@param {any} [details]
@returns Promise<void>