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.
assertNamespacesMatch(
        <div {...expectHTML}>
          <p {...expectHTML} />
          {usePortal(
            <svg {...expectSVG}>
              <image {...expectSVG} />
            </svg>,
          )}
          <p {...expectHTML} />
        </div>,
      );
    });
    it('should keep track of namespace across portals (medium)', () => {
      assertNamespacesMatch(
        <svg {...expectSVG}>
          <image {...expectSVG} />
          {usePortal(<div {...expectHTML} />)}
          <image {...expectSVG} />
          {usePortal(<div {...expectHTML} />)}
          <image {...expectSVG} />
        </svg>,
      );
      assertNamespacesMatch(
        <div {...expectHTML}>
          <math {...expectMath}>
            <mi {...expectMath} />
            {usePortal(
              <svg {...expectSVG}>
                <image {...expectSVG} />
              </svg>,