function walkStyleRulesWithReverseMirror(node, node2, iterator) {
  if (node2 === null) return walkStyleRules(node, iterator);

  [node.nodes, node2.nodes] = splitFilter(
    node.nodes,
    node2.nodes,
    (rule, index, rules, rules2) => {
      const rule2 = rules2[index];
      if (hasNestedRules(rule)) {
        walkStyleRulesWithReverseMirror(rule, rule2, iterator);
      }
      rule._other = rule2;
      rule.filterSelectors = filterSelectors;
      return iterator(rule) !== false;
    }
  );
}
Recursively walk all rules in two identical stylesheets, filtering nodes into one or the other based on a predicate.
@private
@param {css.Rule} node       A Stylesheet or Rule to descend into.
@param {css.Rule} node2      A second tree identical to `node`
@param {Function} iterator   Invoked on each node in the tree. Return `false` to remove that node from the first tree, true to remove it from the second.