**Do you want to request a *feature* or report a *bug*?**
Report a bug.

**What is the current behavior?**
`<select>` element's `onChange` event is fired with incorrect `selectedIndex` and `value`, like it hasn't actually changed. This happens only if the element has been rendered under another React DOM root, see the example in the link below.

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem**
https://jsfiddle.net/martinsb/wd54vmmj/7/

**What is the expected behavior?**
`onChange` callback handlers should receive events with those values that user has actually selected. In the test case above, for example, when choosing "Two", I expect to have the following console output: `Change event, selectedIndex: 1, value: 2`

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
The bug is observed with `react` and `react-dom` packages version `16.0.0-beta.3`. Latest stable version (`15.6.1`) works just fine.

});
  it('should warn if value and defaultValue props are specified', () => {
    spyOn(console, 'error');
    ReactTestUtils.renderIntoDocument(
      <select value="giraffe" defaultValue="giraffe" readOnly={true}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>,
    );
    expectDev(console.error.calls.argsFor(0)[0]).toContain(
      'Select elements must be either controlled or uncontrolled ' +
        '(specify either the value prop, or the defaultValue prop, but not ' +
        'both). Decide between using a controlled or uncontrolled select ' +
        'element and remove one of these props. More info: ' +
        'https://fb.me/react-controlled-components',
    );
    ReactTestUtils.renderIntoDocument(
      <select value="giraffe" defaultValue="giraffe" readOnly={true}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>,
    );
    expectDev(console.error.calls.count()).toBe(1);
  });
  it('should be able to safely remove select onChange', () => {
    function changeView() {
      ReactDOM.unmountComponentAtNode(container);
    }