function walk(args) {
    args.node.forEach(function(item, i) {
      var name = args.selector(item);
      var namespace = args.namespaceSelector &&
                      makeNamespace(args.namespaceSelector(item));
      var extraSymbols = args.getExtraSymbols(args.node, i);

      var info = name && getPrefixInfo(name, namespace, extraSymbols);
      if (!info) return;
      args.payload(info, i);
    });
  }
function walk(args) {
    args.node.forEach(function(item, i) {
      var name = args.selector(item);
      var namespace = args.namespaceSelector &&
                      makeNamespace(args.namespaceSelector(item));
      var extraSymbols = args.getExtraSymbols(args.node, i);

      var info = name && getPrefixInfo(name, namespace, extraSymbols);
      if (!info) return;
      args.payload(info, i);
    });
  }
function walk ( args ) { args . node . forEach ( function ( item , i ) { var name = args . selector ( item ) ; var namespace = args . namespaceSelector && makeNamespace ( args . namespaceSelector ( item ) ) ; var extraSymbols = args . getExtraSymbols ( args . node , i ) ; var info = name && getPrefixInfo ( name , namespace , extraSymbols ) ; if ( ! info ) return ; args . payload ( info , i ) ; } ) ; }
Walks across nodes, and call payload for every node that pass
selector check.

@param {Object} args arguments in form of:
{
node: {object} current node,
selector: {function} propertyName selector
payload: {function} work to do with gathered info
namespaceSelector: {function} selector for namespace
getExtraSymbols: {Number} extra symbols count
}
Walks across nodes and call payload for every node that pass selector check .