-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path-is-connected.js
More file actions
33 lines (31 loc) · 957 Bytes
/
-is-connected.js
File metadata and controls
33 lines (31 loc) · 957 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var globals = require('can-globals');
var util = require('./-util');
var contains = util.contains;
var mutate = {};
var isConnected;
function getIsConnectedFromNode(node) {
return node.isConnected;
}
function getIsConnectedFromDocument(node) {
var doc = node.ownerDocument;
// if node *is* the document, ownerDocument is null
// However, CanSimpleDom implements this incorrectly, and a document's ownerDocument is itself,
// so make both checks
return doc === null || doc === node || contains(doc, node);
}
function setIsConnected(doc) {
if(doc) {
var node = doc.createTextNode("");
isConnected = 'isConnected' in node.constructor.prototype ?
getIsConnectedFromNode :
getIsConnectedFromDocument;
if(mutate) {
mutate.isConnected = isConnected;
}
} else {
mutate.isConnected = getIsConnectedFromNode;
}
}
setIsConnected(globals.getKeyValue("document"));
globals.onKeyValue("document", setIsConnected);
module.exports = mutate;