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.
state = {error: null};
        componentDidCatch(error) {
          this.setState({error});
        }
        render() {
          if (this.state.error) {
            return <image {...expectSVG} />;
          }
          return this.props.children;
        }
      }
      assertNamespacesMatch(
        <svg {...expectSVG}>
          <ErrorBoundary>
            {usePortal(
              <div {...expectHTML}>
                <math {...expectMath}>
                  <BrokenRender />)
                </math>
              </div>,
            )}
          </ErrorBoundary>
          {usePortal(<div {...expectHTML} />)}
        </svg>,
      );
    });
    it('should pass portal context when rendering subtree elsewhere', () => {
      var portalContainer = document.createElement('div');
      class Component extends React.Component {