|  | 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; | 
|  | } ); |