<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script src="N.js"></script> <script src="Pivot.js"></script> </head> <body> <script> let root = N.Create("root"); var context = {}; let recurse = (node, depth) => { // create a set of new nodes off of the input node let c1 = N.Create(node.Meta+"-c1"); let c2 = N.Create(node.Meta+"-c2"); N.Connect(node, c1, "parent"); N.Connect(node, c2, "parent"); var iterator; if(depth < 1) { N.Walk((child) => { console.log(`subdividing ${child.Meta}`); context = [child, depth+1]; recurse(child, depth+1); return false; } , node, "parent"); } else { N.Walk((child) => { /* issue: why does incrementing walk id cause an infinite loop */ N.ID.Walk++; console.log(`changing walk ID ${child.Meta}`); if(N.ID.Walk > 20) { console.log("big problems"); throw new Error("holy crap"); } return false; } , node, "parent"); } } N.ID.Walk++; context = [root, 0]; recurse(root, 0); </script> </body> </html>