var re = /(?:After|Before)EventListener/; currentEvents = {}; opera.addEventListener('BeforeEventListener', function(e) { if (!re.test(e.event.type)) { currentEvents[e.event.type] = new Date(); } },false); opera.addEventListener('AfterEventListener', function(e) { var type = e.event.type, time; if (!re.test(type) && (time = currentEvents[type])) { time = new Date() - time; if (time > 1000) opera.postError(type + ': ' + time + 'ms'); currentEvents[type] = undefined; } }, false);