We used to throw if event listener is not a function in Stack:

```js
ReactDOM.render(
  <h1 onClick={{}}>Hello World!</h1>,
  document.getElementById('container')
);
```

<img width="565" alt="screen shot 2017-08-08 at 3 41 08 pm" src="https://user-images.githubusercontent.com/810438/29077502-2646412e-7c50-11e7-8c99-3b7f6c0a2589.png">

Fiber silently ignores this.

I think we should throw. This would let us add support for objects (e.g. for passive listener configuration) if we want to in a minor rather than a major.
ensureListeningTo(rootContainerElement, 'onChange');
        break;
    }
    assertValidProps(tag, rawProps, getCurrentFiberOwnerName);
    if (__DEV__) {
      var extraAttributeNames: Set<string> = new Set();
      var attributes = domElement.attributes;
      for (var i = 0; i < attributes.length; i++) {
        var name = attributes[i].name.toLowerCase();
        switch (name) {
          
          case 'data-reactroot':
            break;
          
          
          case 'value':
            break;
          case 'checked':
            break;
          case 'selected':
            break;
          default:
            extraAttributeNames.add(attributes[i].name);
        }
      }
    }
    var updatePayload = null;
    for (var propKey in rawProps) {
      if (!rawProps.hasOwnProperty(propKey)) {