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.
render() {
        return <div>Foo</div>;
      }
    }
    const element = <Foo />;
    
    let called = false;
    ReactDOM.render(element, container, () => (called = true));
    expect(called).toEqual(true);
    
    called = false;
    ReactDOM.unstable_batchedUpdates(() => {
      ReactDOM.render(element, container, () => (called = true));
    });
    expect(called).toEqual(true);
  });
  if (ReactDOMFeatureFlags.useFiber) {
    it('should render a component returning strings directly from render', () => {
      const Text = ({value}) => value;
      ReactDOM.render(<Text value="foo" />, container);
      expect(container.textContent).toEqual('foo');
    });
    it('should render a component returning numbers directly from render', () => {
      const Text = ({value}) => value;
      ReactDOM.render(<Text value={10} />, container);
      expect(container.textContent).toEqual('10');
    });
    it('finds the DOM Text node of a string child', () => {
      class Text extends React.Component {