Event={
var listeners={};
function fire(evname, evdata) {
if (!listeners[evname])
listeners[evname] = [];
for(let handler of listeners[evname])
handler(evdata);
}
function on(evname, handler) {
if (!listeners[evname])
listeners[evname] = [];
if (listeners.indexOf(handler)<0)
listeners[evname].push(handler);
}
function removeListener(evname, handler) {
var l = listeners[evname];
if (l) {
while(true) {
let i = l.indexOf(handler);
if (i<0)
break;
l.splice(i,1);
}
}
}
return {
fire,
on,
removeListener
}
}