rem: e.hooks.push (hooks[h]); var rv = hooks[h].f(e); 
add: e.hooks.push(hooks[h]); try { var rv = hooks[h].f(e); } catch(ex) { dd("hook #" + h + " '" + ((typeof hooks[h].name != "undefined") ? hooks[h].name : "") + "' had an error!"); dd(formatException(ex)); } 
context: function ep_hook(e, hooks){    var h;    if (typeof hooks == "undefined")        hooks = this.hooks;  hook_loop:    for (h = hooks.length - 1; h >= 0; h--)    {        if (!hooks[h].enabled ||            !matchObject (e, hooks[h].pattern, hooks[h].neg))            continue hook_loop;        e.hooks.push (hooks[h]);        var rv = hooks[h].f(e);        if ((typeof rv == "boolean") &&            (rv == false))        {            dd ("hook #" + h + " '" +                ((typeof hooks[h].name != "undefined") ? hooks[h].name :                 "") + "' stopped hook processing.");            return true;        }    }    return false;}
meta: 5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5872/e9cd03e90cb4a71d03b2dfa95489add7eaf2f37a/events.js/buggy/extensions/irc/js/lib/events.js