Given the following test case

``` jsx
function TestCmp() {
  return <span>{NaN}</span>;
}

ReactDOM.render(<TestCmp />, document.getElementById('app'));
```

Produces the following warning:

```
Warning: Component's children should not be mutated.
    in span (created by TestCmp)
    in TestCmp (created by Unknown)
```

This is probably caused by [this mutation check](https://github.com/facebook/react/blob/328fc75bc910032ff37dc9d93429fb14b476bd0d/src/renderers/shared/hooks/ReactChildrenMutationWarningHook.js#L34), which was introduced in 15.3.0, but it doesn't work for NaN, because NaN != NaN

return str.replace(/\(at .+?:\d+\)/g, '(at **)');
    }
    spyOn(console, 'error');
    var children = [<span key={0} />, <span key={1} />, <span key={2} />];
    var element = <div>{children}</div>;
    children[1] = <p key={1} />; 
    ReactServerRendering.renderToString(element);
    expect(console.error.calls.count()).toBe(1);
    expect(normalizeCodeLocInfo(console.error.calls.argsFor(0)[0])).toBe(
      'Warning: Component\'s children should not be mutated.\n    in div (at **)'
    );
  });
  it('should warn when children are mutated', () => {
    function normalizeCodeLocInfo(str) {
      return str.replace(/\(at .+?:\d+\)/g, '(at **)');
    }
    spyOn(console, 'error');
    var children = [<span key={0} />, <span key={1} />, <span key={2} />];
    function Wrapper(props) {
      props.children[1] = <p key={1} />; 
      return <div>{props.children}</div>;
    }
    ReactServerRendering.renderToString(<Wrapper>{children}</Wrapper>);
    expect(console.error.calls.count()).toBe(1);
    expect(normalizeCodeLocInfo(console.error.calls.argsFor(0)[0])).toBe(
      'Warning: Component\'s children should not be mutated.\n    in Wrapper (at **)'
    );
  });
});