code: function findNode(name, root) {
          var i, stack, node;
          if (root === null || root === undefined) { return null; }
          stack = [root];
          while (stack.length > 0) {
              node = stack.pop();
              if (node.name === name) {
                  return node;
              }
              for (i = node.children.length - 1; i >= 0; i -= 1) {
                  stack.push(node.children[i]);
              }
          }
          return null;
      }
docs: /////////////////////////////////////////////////// ast analysis