| define( [ |
| "../core", |
| "../var/documentElement", |
| "../selector" // jQuery.contains |
| ], function( jQuery, documentElement ) { |
| "use strict"; |
| |
| var isAttached = function( elem ) { |
| return jQuery.contains( elem.ownerDocument, elem ); |
| }, |
| composed = { composed: true }; |
| |
| // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only |
| // Check attachment across shadow DOM boundaries when possible (gh-3504) |
| // Support: iOS 10.0-10.2 only |
| // Early iOS 10 versions support `attachShadow` but not `getRootNode`, |
| // leading to errors. We need to check for `getRootNode`. |
| if ( documentElement.getRootNode ) { |
| isAttached = function( elem ) { |
| return jQuery.contains( elem.ownerDocument, elem ) || |
| elem.getRootNode( composed ) === elem.ownerDocument; |
| }; |
| } |
| |
| return isAttached; |
| } ); |