src/js/libs/spiritual-gui.js
function(name, params, body, context) {
		var F = context ? context.Function : Function;
		name = this.safename(name);
		params = params ? params.join(",") : "";
		body = body || "";
		return new F(
			"return function " + name + " ( " + params + " ) {" + body + "}"
		)();
	}
function(name, params, body, context) {
		var F = context ? context.Function : Function;
		name = this.safename(name);
		params = params ? params.join(",") : "";
		body = body || "";
		return new F(
			"return function " + name + " ( " + params + " ) {" + body + "}"
		)();
	}
function ( name , params , body , context ) { var F = context ? context . Function : Function ; name = this . safename ( name ) ; params = params ? params . join ( "," ) : "" ; body = body || "" ; return new F ( "return function " + name + " ( " + params + " ) {" + body + "}" ) ( ) ; }
Create named function. This may not be the most optimized thing to compile.
@see https://mail.mozilla.org/pipermail/es-discuss/2009-March/008954.html
@see http://wiki.ecmascript.org/doku.php?id=strawman:name_property_of_functions
@param @optional {String} name
@param @optional {Array<String>} params
@param @optional {String} body
@param @optional {Window} context
@returns {function}
Create named function . This may not be the most optimized thing to compile .