whole_func_string: 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);
      });
    }
func_code_string: 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);
      });
    }
func_documentation_string: 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
  }