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.

it('identifies elements, but not JSON, if Symbols are supported', function() {
    
    
    
    var REACT_ELEMENT_TYPE = function() {}; 
    var OTHER_SYMBOL = function() {}; 
    global.Symbol = function(name) {
      return OTHER_SYMBOL;
    };
    global.Symbol.for = function(key) {
      if (key === 'react.element') {
        return REACT_ELEMENT_TYPE;
      }
      return OTHER_SYMBOL;
    };
    jest.resetModuleRegistry();
    React = require('React');
    var Component = React.createClass({
      render: function() {
        return React.createElement('div');
      },
    });
    expect(React.isValidElement(React.createElement('div')))
      .toEqual(true);
    expect(React.isValidElement(React.createElement(Component)))
      .toEqual(true);
    expect(React.isValidElement(null)).toEqual(false);
    expect(React.isValidElement(true)).toEqual(false);