File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -44,11 +44,15 @@ type AnyPortalNode<C extends Component<any> = Component<any>> = HtmlPortalNode<C
4444
4545
4646const validateElementType = ( domElement : Element , elementType : ANY_ELEMENT_TYPE ) => {
47+ const ownerDocument = ( domElement . ownerDocument ?? document ) as any ;
48+ // Cast document to `any` because Typescript doesn't know about the legacy `Document.parentWindow` field, and also
49+ // doesn't believe `Window.HTMLElement`/`Window.SVGElement` can be used in instanceof tests.
50+ const ownerWindow = ownerDocument . defaultView ?? ownerDocument . parentWindow ?? window ; // `parentWindow` for IE8 and earlier
4751 if ( elementType === ELEMENT_TYPE_HTML ) {
48- return domElement instanceof HTMLElement ;
52+ return domElement instanceof ownerWindow . HTMLElement ;
4953 }
5054 if ( elementType === ELEMENT_TYPE_SVG ) {
51- return domElement instanceof SVGElement ;
55+ return domElement instanceof ownerWindow . SVGElement ;
5256 }
5357 throw new Error ( `Unrecognized element type "${ elementType } " for validateElementType.` ) ;
5458} ;
You can’t perform that action at this time.
0 commit comments