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
}
  }
}
function updateDOMProperties(
  domElement: Element,
  updatePayload: Array<any>,
  wasCustomComponentTag: boolean,
  isCustomComponentTag: boolean,
): void {
  
  for (let i = 0; i < updatePayload.length; i += 2) {
    const propKey = updatePayload[i];
    const propValue = updatePayload[i + 1];
    if (propKey === STYLE) {
      setValueForStyles(domElement, propValue);
    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
      setInnerHTML(domElement, propValue);
    } else if (propKey === CHILDREN) {
      setTextContent(domElement, propValue);
    } else {
      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);
    }
  }
}
export function createElement(
  type: string,
  props: Object,
  rootContainerElement: Element | Document,
  parentNamespace: string,
): Element {