Dotan Nahum 77e48f1782 Make MessageQueue to emit "SPY" events in a way that can be extensible
Summary:
This PR adds a capability for MessageQueue to emit "SPY" events in a way that can be extensible, to later allow for a tooling ecosystem to grow, one example is the existing [Snoopy](https://github.com/jondot/rn-snoopy) tool that is, for now, forced to work with monkeypatches, and after this PR will be able to use a "formal" way to trace queue events.

After this change, we can wire a "spy" into a queue that will expose the events in different and interesting ways, see below (done with Snoopy):
  <img src="https://github.com/jondot/rn-snoopy/blob/master/media/snoopy.gif?raw=true" alt="Aggregating and Charting Events with Bar" width="400px"/>
  <img src="https://github.com/jondot/rn-snoopy/blob/master/media/snoopy-filter.gif?raw=true" alt="Aggregating and Charting Events with Bar" width="400px"/>

This removes the hardcoded `SPY_MODE` flag and instead uses a function that can be injected from outside world.

```javascript
MessageQueue.spy((info)=>console.log("event!", info)
```

It also creates
Closes https://github.com/facebook/react-native/pull/9160

Differential Revision: D3669053

Pulled By: javache

fbshipit-source-id: 3e4462aa77fc8514d2ea4f15430f7bec57b583a4
2016-08-04 08:43:31 -07:00
..
2016-04-27 19:16:32 -07:00
2015-03-23 16:47:26 -08:00
2016-06-01 13:59:16 -07:00
2016-02-27 15:58:35 -08:00
2016-02-27 15:58:35 -08:00
2016-05-17 12:43:40 -07:00
2015-03-23 16:47:26 -08:00
2015-08-06 20:22:24 -08:00
2015-12-15 09:09:32 -08:00
2016-01-15 05:15:31 -08:00
2016-06-03 05:43:26 -07:00
2016-06-03 05:43:26 -07:00
2016-06-13 10:13:36 -07:00
2016-08-02 14:13:27 -07:00