code: function isOff(node, nodeComputedStyle) {
      if (node === document.documentElement) return false;
  
      // Find the cached node (Array.prototype.find not available in IE9)
      for (var i = 0, length = isOffCache.length; i < length; i++) {
        if (isOffCache[i][0] === node) return isOffCache[i][1];
      }
  
      nodeComputedStyle = nodeComputedStyle || window.getComputedStyle(node);
  
      var result = false;
  
      if (nodeComputedStyle.display === 'none') {
        result = true;
      } else if (node.parentNode) {
        result = isOff(node.parentNode);
      }
  
      isOffCache.push([node, result]);
  
      return result;
    }
docs: "off" means `display: none;`, as opposed to "hidden", which means `visibility: hidden;`. getComputedStyle accurately reflects visiblity in context but not "off" state, so we need to recursively check parents.