code: function ArgFunction(string, args, defaultVariableName, options) {
  	options = options || {};
  
  	if(options.ignoreExceptions === undefined)
  		options.ignoreExceptions = true;
  
  	var m = string.match(/^\s*\{([\s\S]*)\}\s*$/);
  	if(m) {
  		// просто вариант - юзер указал весь код функции целиком
  		var code = m[1] + (options.suffix || '');
  
  		try {
  			return new Function(args.join(','), code);
  		} catch (e) {
  			throw new Error(e.message + ': ' + code);
  		}
  	}
  
  	/*
  	 * сложный вариант: юзер указал что-то вроде "field.subfield"
  	 * надо конвертнуть это в function(args..) { return  $defaultVariableName.field.subfield }
  	 */
  
  	var src = 'return ' + defaultVariableName;
  
  	if(string[0] === '[') {
  		// не делаем ничего
  		src += string;
  	} else {
  		if(string !== '') {
  			src += '.';
  			src += string;
  		}
  	}
  
  	if(options.ignoreExceptions) {
  		src = 'try { ' + src + ' } catch(e) { }';
  	}
  
  	return new Function(args.join(','), src);
  }
docs: Штука, которая парсит аргумент командной строки и создаёт функцию по следующим
  правилам:
  1. Для аргументов вида ~\s*\{.*\}\s*~ код функции генерится как указано внутри {}
  2. Для всего остального генерится функция вида return DEFAULT_VARIABLE.$arg
  @returns {undefined}