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.
if (__DEV__) {
              warnForTextDifference(domElement.textContent, nextProp);
            }
            updatePayload = [CHILDREN, '' + nextProp];
          }
        }
      } else if (registrationNameModules.hasOwnProperty(propKey)) {
        if (nextProp) {
          ensureListeningTo(rootContainerElement, propKey);
        }
      } else if (__DEV__) {
        
        var serverValue;
        var propertyInfo;
        if (
          propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
          
          
          propKey === 'value' ||
          propKey === 'checked' ||
          propKey === 'selected'
        ) {
          
        } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
          const rawHtml = nextProp ? nextProp[HTML] || '' : '';
          const serverHTML = domElement.innerHTML;
          const expectedHTML = normalizeHTML(domElement, rawHtml);
          if (expectedHTML !== serverHTML) {
            warnForPropDifference(propKey, serverHTML, expectedHTML);