<!--
  Note: if the issue is about documentation or the website, please file it at:
  https://github.com/reactjs/reactjs.org/issues/new
-->

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

Bug 

**What is the current behavior?**

React DOM crashes when `<option>` contains three interpolated value if one is a conditional. 

Reproduction: https://jsfiddle.net/0opjvycp/ 

1. Change the value of the `<select>`
2. React crashes with `NotFoundError: Node was not found` 

From what I can tell, the conditional value is necessary, and it must be three interpolated values. 

**What is the expected behavior?**

React should not crash. 

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

React DOM 16.2 and 16.0. I think this worked in 15.6 - https://jsfiddle.net/mrwkmuqc/ does not crash 

expect(node.value).toBe('__proto__');
    
    ReactDOM.render(
      <select value="gorilla" onChange={noop}>
        {options}
      </select>,
      container,
    );
    expect(node.value).toEqual('gorilla');
  });
  it('should not throw with `value` and without children', () => {
    const stub = <select value="dummy" onChange={noop} />;
    expect(() => {
      ReactTestUtils.renderIntoDocument(stub);
    }).not.toThrow();
  });
  it('should allow setting `value` with multiple', () => {
    let stub = (
      <select multiple={true} value={['giraffe', 'gorilla']} onChange={noop}>
        <option value="monkey">A monkey!</option>
        <option value="giraffe">A giraffe!</option>
        <option value="gorilla">A gorilla!</option>
      </select>
    );
    const options = stub.props.children;
    const container = document.createElement('div');
    const node = ReactDOM.render(stub, container);
    expect(node.options[0].selected).toBe(false); 
    expect(node.options[1].selected).toBe(true); 
    expect(node.options[2].selected).toBe(true);