var ap=Array.prototype, h=dojo._ie_listener.handlers, c=args.callee, ls=c._listeners, t=h[c.target];
// return value comes from original target functionvar r = t && t.apply(sender, args);
// invoke listeners after target functionfor(var i in ls){if(!(i in ap)){
h[ls[i]].apply(sender, args);
}}return r;