ScriptEngine engine = discoverEngine(script, arguments);
Bindings bindings = (!CollectionUtils.isEmpty(arguments) ? new SimpleBindings(arguments) : null);
try {
return (bindings == null ? engine.eval(script.getScriptAsString()) : engine.eval(
script.getScriptAsString(), bindings));
} catch (IOException ex) {
throw new ScriptCompilationException(script, "Cannot access script", ex);
} catch (ScriptException ex) {
throw new ScriptCompilationException(script, "Execution failure", ex);