UNPKG

can-dom-mutate

Version:

Dispatch and listen for DOM mutations

34 lines (31 loc) 957 B
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;