title: `node.contains` is undefined in IE 11 when calling from a React ref in IE 11
body: <p>Does anyone know why <code>element.contains</code> would be undefined in IE11? <a href="https://developer.mozilla.org/en-US/docs/Web/API/Node/contains" rel="nofollow noreferrer">According to MDN</a>, this function is supported in IE, but when I attempt to use it from a React <a href="https://reactjs.org/docs/refs-and-the-dom.html" rel="nofollow noreferrer">DOM ref</a> I get an error. Here's a rough example of the React code that I'm using to make the call:</p>
  
  <pre><code>class SomeComponent extends React.Component {
    constructor(props) {
      // stuff
    }
  
    componentDidMount() {
      window.addEventListener('mousedown', e =&gt; {
        if (this.list.contains(e.target)) {
          // stuff
        }
      }.bind(this));
    }
  
    render() {
      return (
        &lt;ul ref={c =&gt; { this.list = c }}&gt;
          // stuff
        &lt;/ul&gt;
      );
    }
  }
  </code></pre>
  
  <p>In IE 11, this code generates the following error:</p>
  
  <p><a href="https://i.stack.imgur.com/Bwn3o.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Bwn3o.png" alt="Object doesn&#39;t support property or method error"></a></p>
  
  <p>Does anyone know why this might be happening? </p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>Oddly, I've discovered that <code>this.dropdown</code> references the React component, whereas <code>this.dropdown.dropdown</code> points to the HTML element. So that <code>this.dropdown.dropdown.contains</code> refers to the correct method! So this, I suppose, is the thing to explain...</p>