(emitter, type /*, values...*/)
| 6849 | // operation is active, when a timeout fires. |
| 6850 | var delayedCallbacks, delayedCallbackDepth = 0; |
| 6851 | function signalLater(emitter, type /*, values...*/) { |
| 6852 | var arr = emitter._handlers && emitter._handlers[type]; |
| 6853 | if (!arr) return; |
| 6854 | var args = Array.prototype.slice.call(arguments, 2); |
| 6855 | if (!delayedCallbacks) { |
| 6856 | ++delayedCallbackDepth; |
| 6857 | delayedCallbacks = []; |
| 6858 | setTimeout(fireDelayed, 0); |
| 6859 | } |
| 6860 | function bnd(f) {return function(){f.apply(null, args);};}; |
| 6861 | for (var i = 0; i < arr.length; ++i) |
| 6862 | delayedCallbacks.push(bnd(arr[i])); |
| 6863 | } |
| 6864 | |
| 6865 | function fireDelayed() { |
| 6866 | --delayedCallbackDepth; |
no test coverage detected