function (/*Object*/ source, /*String*/ method, /*Function*/ listener) (view source)
source = source || dojo.global;
var f = source[method];
if(!f||!f._listeners){var d = dojo._getIeDispatcher();
// original target function is special
d.target = f &&(ieh.push(f) - 1);
// dispatcher holds a list of indices into handlers table
d._listeners = [];
// redirect source to dispatcher
f = source[method] = d;
}return f._listeners.push(ieh.push(listener) - 1) ; /*Handle*/