Index: node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/helpers.js |
diff --git a/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/helpers.js b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/helpers.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..476b8eb51b67247c802ad3a77d18ab4266bbb3b7 |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/whacko/node_modules/CSSselect/node_modules/domutils/lib/helpers.js |
@@ -0,0 +1,31 @@ |
+// removeSubsets |
+// Given an array of nodes, remove any member that is contained by another. |
+exports.removeSubsets = function(nodes) { |
+ var idx = nodes.length, node, ancestor, replace; |
+ |
+ // Check if each node (or one of its ancestors) is already contained in the |
+ // array. |
+ while (--idx > -1) { |
+ node = ancestor = nodes[idx]; |
+ |
+ // Temporarily remove the node under consideration |
+ nodes[idx] = null; |
+ replace = true; |
+ |
+ while (ancestor) { |
+ if (nodes.indexOf(ancestor) > -1) { |
+ replace = false; |
+ nodes.splice(idx, 1); |
+ break; |
+ } |
+ ancestor = ancestor.parent; |
+ } |
+ |
+ // If the node has been found to be unique, re-insert it. |
+ if (replace) { |
+ nodes[idx] = node; |
+ } |
+ } |
+ |
+ return nodes; |
+}; |