returnfunction(){var ap=Array.prototype, c=arguments.callee, ls=c._listeners, t=c.target;
// return value comes from original target functionvar r=t && t.apply(this, arguments);
// invoke listeners after target functionfor(var i in ls){if(!(i in ap)){
ls[i].apply(this, arguments);
}}// return value comes from original target functionreturn r;
}