// @flow
/*:: import type { Window } from '../types'; */
/*:: declare function getWindow(node: Node | Window): Window; */

export default function getWindow(node) {
  if (node.toString() !== '[object Window]') {
    const ownerDocument = node.ownerDocument;
    return ownerDocument ? ownerDocument.defaultView : window;
  }

  return node;
}

// @flow
/*:: import type { Window } from '../types'; */
/*:: declare function getWindow(node: Node | Window): Window; */

export default function getWindow(node) {
  if (node.toString() !== '[object Window]') {
    const ownerDocument = node.ownerDocument;
    return ownerDocument ? ownerDocument.defaultView || window : window;
  }

  return node;
}

Fix errors when iFrames are destroyed
Fix errors when iFrames are destroyed

Errors are thrown when an iFrame is destroyed because the popper's reference node's document no longer has a `defaultView`. The errors being thrown are:

> Cannot read property 'Element' of null

and

> Cannot read property 'HTMLElement' of null

from within `update`.
