code: function _getElements(parent, list, criteria){
      var childNodes = parent.childNodes;
      if (!childNodes) return list;
      for (var node, i = 0, n = childNodes.length; i < n; i++){
          node = childNodes[i];
          if (criteria && criteria.call(null, node) === true) list.push(node);
          _getElements(node, list, criteria);
      }
  }
docs: this is here to support (partial) dom interface on top of our own document implementation we don't need this in the browser, it's here when running in environments without a native xhr where the xhr object does not offer a DOM responseXML object.