This is a bug in `React.createElement` code:

`React.createElement` does not warn if `props.__proto__` is null ( from `Object.create(null)` ) since it [believes that to be a plain object](https://github.com/facebook/react/blob/master/src/isomorphic/classic/element/ReactElement.js#L135) originating from #6134. But since it directly accesses `hasOwnProperty` it fails if such object is passed as props.

Reproduce:

``` js
const props = Object.create(null);
React.createElement(() => null, props);
```

**What is the expected behavior?**
It shouldn't use `hasOwnProperty` directly on props if such object is expected.

React: 15.1.0
Browsers: All
OS: All

This affects all versions of React but since after 15.1.0 the acceptable shape of props is explicitly defined then it should be explicitly supported as well.

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.'
      );
      ref = !config.hasOwnProperty('ref') ||
        Object.getOwnPropertyDescriptor(config, 'ref').get ? null : config.ref;