code: function getParents (node, test, key, childrenKey, parentKey) {
    var i, v, p = node, path = [];
    while (p) {
      if (test(p)) {
        if (childrenKey) {
          for (i = 0; i < path.length; i++) {
            arrayKV(p, childrenKey, path[i], false, true);
          }
        }
        if (path[0] && parentKey) {
          path[0][parentKey] = p;
        }
        path.unshift(p);
      }
      p = p.parent;
    }
    for (i = 0; i < path.length; i++) {
      v = path[i];
      path[i] = key ? v[key] : v;
    }
  
    return path
  }
docs: get parents array from node (when it's passed the test)