docs: function(elements, parts, isReplacementSearch) {
              parts = parts || {};
  
              if (!elements) {
                  return parts;
              }
  
              if (elements.length === undefined) {
                  elements = [elements];
              }
  
              for (var i = 0, length = elements.length; i < length; i++) {
                  var element = elements[i];
  
                  if (element.getAttribute) {
                      if(!isReplacementSearch && hasComposition(element)){
                          continue;
                      }
  
                      var id = element.getAttribute(partAttributeName);
                      if (id) {
                          parts[id] = element;
                      }
  
                      if(!isReplacementSearch && element.hasChildNodes()){
                          composition.getParts(element.childNodes, parts);
                      }
                  }
              }
  
              return parts;
          }