Сообщение от fuckingquest
			 
		
	 | 
	
		who_cares_?, 
 А зачем это? Твоя верхняя и нижняя функция эквивалентны. Только не foo(a,b) {return a + b}, а function foo(a,b) {return a + b}
	 | 
	
Да, я в курсе) Нужно затем, чтобы после сериализации и парсинга функции кодом который ниже, полученную функцию можно было снова так же сериализовать и запарсить. Ну и живущий во мне перфекционист требует чтобы все функции выглядели одинаково
 
var str = JSON.stringify(BASE, function(key, value) {
	if(typeof value == 'function') {
		wr(value);
		var start = key.length;
		value = 'function' + value.toString().substring(start);
	}
return value;
});
var PARSE = JSON.parse(str, function(key, value) {
	if(typeof value == 'string' && value.substr(0, 3) == 'fun') {
		ARG:{
		        const open = value.indexOf("(");
		        const close = value.indexOf(")");
			var arg = value.substring(open+1, close);
		}
		body:{
			const open = value.indexOf("{");
			var body = value.substring(open + 1, value.length-1);
		}
		value = new Function(arg, body);
	};
	return value;
});
BASE = PARSE;
Это кстати велосипед который пришлось изобрести для решения этой задачи: 
Сериализация объекта с функциями.
_