code: function(fn, includeSelf) {
  			var i,
  				l,
  				res = true,
  				children = this.children;
  
  			if (includeSelf === true) {
  				res = fn(this);
  				if (res === false || res === "skip") {
  					return res;
  				}
  			}
  			if (children) {
  				for (i = 0, l = children.length; i < l; i++) {
  					res = children[i].visit(fn, true);
  					if (res === false) {
  						break;
  					}
  				}
  			}
  			return res;
  		}
docs: Call fn(node) for all child nodes in hierarchical order (depth-first).<br>
  Stop iteration, if fn() returns false. Skip current branch, if fn() returns "skip".<br>
  Return false if iteration was stopped.
  
  @param {function} fn the callback function.
  Return false to stop iteration, return "skip" to skip this node and
  its children only.
  @param {boolean} [includeSelf=false]
  @returns {boolean}