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 (!props.hasOwnProperty('ref')) {
        Object.defineProperty(props, 'ref', {
          get: function() {
            if (!specialPropRefWarningShown) {
              specialPropRefWarningShown = true;
              warning(
                false,
                '%s: `ref` is not a prop. Trying to access it will result ' +
                  'in `undefined` being returned. If you need to access the same ' +
                  'value within the child component, you should pass it as a different ' +
                  'prop. (https://fb.me/react-special-props)',
                typeof type === 'function' && 'displayName' in type ? type.displayName : 'Element'
              );
            }
            return undefined;
          },
          configurable: true,
        });
      }
    }
  }
  return ReactElement(
    type,
    key,
    ref,
    self,
    source,
    ReactCurrentOwner.current,
    props