{"ScriptPreparationCode":"function getAllElements(root = document.body) {\r\n const elements = [];\r\n const elementStack = [];\r\n const indexStack = [];\r\n\r\n let current = root;\r\n let currentChildren = current.children;\r\n let i = 0;\r\n let depth = 0;\r\n while (true) {\r\n if (currentChildren.length \u003E i) {\r\n const el = currentChildren.item(i\u002B\u002B);\r\n elements.push(el);\r\n if (el.childElementCount \u003E 0) {\r\n elementStack[depth] = current;\r\n indexStack[depth] = i;\r\n depth \u002B= 1;\r\n i = 0;\r\n current = el;\r\n currentChildren = el.children;\r\n }\r\n } else if (depth \u003E 0) {\r\n depth -= 1;\r\n i = indexStack[depth];\r\n current = elementStack[depth];\r\n currentChildren = current.children;\r\n } else {\r\n break;\r\n }\r\n }\r\n return elements;\r\n}\r\n\r\nfunction getAllElementsNaive(root = document.body) {\r\n const elements = [];\r\n const stack = [];\r\n\r\n let current = root;\r\n let i = 0;\r\n while (true) {\r\n if (current.children.length \u003E i) {\r\n const el = current.children.item(i\u002B\u002B);\r\n elements.push(el);\r\n if (el.childElementCount \u003E 0) {\r\n stack.push([current, i]);\r\n i = 0;\r\n current = el;\r\n }\r\n } else if (stack.length \u003E 0) {\r\n [current, i] = stack.pop();\r\n } else {\r\n break;\r\n }\r\n }\r\n return elements;\r\n}","TestCases":[{"Name":"TreeWalker","Code":"const treeWalker = document.createTreeWalker(\r\n document.body,\r\n NodeFilter.SHOW_ELEMENT\r\n);\r\n\r\nconst list = [];\r\nlet element;\r\nwhile (element = treeWalker.nextNode()) {\r\n list.push(element);\r\n}","IsDeferred":false},{"Name":"querySelectorAll","Code":"const list = document.body.querySelectorAll(\u0027*\u0027);","IsDeferred":false},{"Name":"getAllElements()","Code":"getAllElements()","IsDeferred":false},{"Name":"getAllElementsNaive()","Code":"getAllElementsNaive()","IsDeferred":false}],"UseTinyBench":false}