{"ScriptPreparationCode":"var nodes = new Array(1000).fill(null).map((_, i) =\u003E ({\r\n id: i,\r\n nodes: new Array(100).fill(null).map((_, i2) =\u003E ({\r\n id: \u0060${i}-${i2}\u0060,\r\n nodes: new Array(10).fill(null).map((_, i3) =\u003E ({\r\n id: \u0060${i}-${i2}-${i3}\u0060,\r\n })),\r\n })),\r\n}));","TestCases":[{"Name":"Generator populating a map via for...of","Code":"function* iterateOverNodes(nodes) {\r\n for (const node of nodes) {\r\n yield [node.id, node];\r\n if (node.nodes) {\r\n yield* iterateOverNodes(node.nodes);\r\n }\r\n }\r\n}\r\n\r\nvar map = {};\r\nfor (const [id, node] of iterateOverNodes(nodes)) {\r\n map[id] = node;\r\n}","IsDeferred":false},{"Name":"Generator populating a map via Map.prototype.constructor","Code":"function* iterateOverNodes(nodes) {\r\n for (const node of nodes) {\r\n yield [node.id, node];\r\n if (node.nodes) {\r\n yield* iterateOverNodes(node.nodes);\r\n }\r\n }\r\n}\r\n\r\nvar map = new Map(iterateOverNodes(nodes));","IsDeferred":false},{"Name":"recursively add to map using Array.prototype.forEach","Code":"function addNodesToMap(nodes, map = {}) {\r\n nodes.forEach((n) =\u003E {\r\n map[n.id] = n;\r\n if (n.nodes) {\r\n addNodesToMap(n.nodes, map);\r\n }\r\n });\r\n return map;\r\n}\r\n\r\naddNodesToMap(nodes);","IsDeferred":false},{"Name":"recursively add to map using for...of","Code":"function addNodesToMap(nodes, map = {}) {\r\n for (const n of nodes) {\r\n map[n.id] = n;\r\n if (n.nodes) {\r\n addNodesToMap(n.nodes, map);\r\n }\r\n }\r\n return map;\r\n}\r\n\r\naddNodesToMap(nodes)\r\n","IsDeferred":false}]}