Exec-tree-example.as
From Organic Design wiki
A = function() {trace("A"); return B;}; B = function() {trace("B"); return C;}; C = function() {trace("C"); return A;};
P = function() {trace("P"); return Q;}; Q = function() {trace("Q"); return R;}; R = function() {trace("R"); return P;};
X = function() {trace("X"); return Y;}; Y = function() {trace("Y"); return Z;}; Z = function() {trace("Z"); return X;};
someNode = {queue:[P,X]}; root = {queue:[A,someNode]};
while (true) { cwd = root; for (var i = 1; i == 1;) { var queue = cwd.queue; if (queue.length > 0) { var todo = queue.shift(); if (next = typeOf(todo) == 'function' ? (i = todo.call) : (cwd = todo)) queue.push(next); } else i = 0; } }