Add Optional Flag to Render() to Buffer the Output and Return as String

Currently the render(string) BIF writes the contents to the output stream and returns an empty string.

An optional flag can be added, which will prevent the rendered value from being written to the response stream, and instead will return the value as a result, changing the signature to:

render(string, isBuffered=false):string

So calling render(string) will work as it does now, but calling render(string, true) will return the evaluated string as a return value.

JIRA ticket:

WARNING: Calling render() on user-supplied input (Form, URL, etc.) is extremely dangerous and should be avoided.

For the uninitiated this was released in Lucee 5:

Render (new)

render(string code [,string dialect]):string
Similar to the function evaluate, this function executes CFML/Lucee code that you provide as a string.

Code example:

render('<cfmail subject="Hi There!" from="#from#"  to="#to#">Salve!</cfmail> ');

A massive inline EVAL doesn’t blow my hair back.

The tag island suggestion looks like a better approach: