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

if (Object.freeze) {
      Object.freeze(element.props);
      Object.freeze(element);
    }
  }
  return element;
};
/**
 * Create and return a new ReactElement of the given type.
 * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement
 */
ReactElement.createElement = function(type, config, children) {
  var propName;
  
  var props = {};
  var key = null;
  var ref = null;
  var self = null;
  var source = null;
  if (config != null) {
    if (__DEV__) {
      warning(
        
        config.__proto__ == null || config.__proto__ === Object.prototype,
        
        'React.createElement(...): Expected props argument to be a plain object. ' +
        'Properties defined in its prototype chain will be ignored.'
      );
    }
    if (hasValidRef(config)) {