Browse Source

fixed indexing

Gildas 6 years ago
parent
commit
8ab16b3bdf
1 changed files with 8 additions and 6 deletions
  1. 8 6
      lib/single-file/util/doc-helper.js

+ 8 - 6
lib/single-file/util/doc-helper.js

@@ -126,16 +126,18 @@ this.docHelper = this.docHelper || (() => {
 		};
 	}
 
-	function getShadowRootsData(element, shadowRootsData = []) {
+	function getShadowRootsData(element, data = { shadowRootsData: [], indexElement: 0 }) {
 		element.childNodes.forEach(node => {
-			getShadowRootsData(node, shadowRootsData);
 			if (node.shadowRoot) {
-				node.setAttribute(SHADOW_ROOT_ATTRIBUTE_NAME, shadowRootsData.length);
-				shadowRootsData.push({ content: node.shadowRoot.innerHTML });
-				getShadowRootsData(node.shadowRoot, shadowRootsData);
+				node.setAttribute(SHADOW_ROOT_ATTRIBUTE_NAME, data.indexElement);
+				const indexEntry = data.indexElement;
+				data.indexElement++;
+				getShadowRootsData(node.shadowRoot, data);
+				data.shadowRootsData[indexEntry] = { content: node.shadowRoot.innerHTML };
 			}
+			getShadowRootsData(node, data);
 		});
-		return shadowRootsData;
+		return data.shadowRootsData;
 	}
 
 	function getUsedFonts(styles, loadedFonts) {