React version: 0.0.0-f77c7b9d7

## Steps To Reproduce

1. Mount a component with even listeners in a `ShadowRoot`

Link to code example:

- [codesandbox with `react@next`](https://codesandbox.io/s/next-shadowroot-as-root-element-pkktc) (crashes)
- [codesandbox with `react@16.13.1`](https://codesandbox.io/s/16-shadowroot-as-root-element-m74ob) (mounts  without errors/warnings)


## The current behavior

Throws with 
> ensureListeningTo(): received a container that was not an element node. This is likely a bug in React.

## The expected behavior

1. throw with a descriptive error that ShadowRoot is no longer supported as a root element

or

2. continue to allow ShadowRoot as a root element

No preference here. This was just from an old regression test we had. 

Will be fixed by https://github.com/facebook/react/pull/15894
ensureListeningTo(rootContainerElement, 'onChange', domElement);
      break;
  }
  assertValidProps(tag, rawProps);
  if (__DEV__) {
    extraAttributeNames = new Set();
    const attributes = domElement.attributes;
    for (let i = 0; i < attributes.length; i++) {
      const name = attributes[i].name.toLowerCase();
      switch (name) {
        
        case 'data-reactroot':
          break;
        
        
        case 'value':
          break;
        case 'checked':
          break;
        case 'selected':
          break;
        default:
           Intentionally use the original name.
           See discussion in https:github.com/facebook/react/pull/10676.
          extraAttributeNames.add(attributes[i].name);
      }
    }
  }