Bug Squished: dispatchEvent is overwriting listeners array

Closing Issue #4804
Considering the case were one of the functions in listenerArray actually dispatches an event of another object (objB)... immediately ```array``` would be overwritten since it is in a shared scope to any call to dispatchEvent. See discussion on 4f42011a5d5f65fe8f17a050d7e6c65b17dc0c95