code: public static Object eval(ScriptEngine self, String script, Binding binding) throws ScriptException {
          storeBindingVars(self, binding);
          Object result = self.eval(script);
          retrieveBindingVars(self, binding);
          return result;
      }
docs: Executes the specified script.  The default <code>ScriptContext</code> for the <code>ScriptEngine</code>
  is used. Variables from a Groovy <code>Binding</code> are made available in the default scope of the
  <code>Bindings</code> of the <code>ScriptEngine</code>. Resulting variables in the <code>Bindings</code>
  are returned back to the Groovy <code>Binding</code>.
  
  @param self A ScriptEngine
  @param script The script language source to be executed
  @param binding A Groovy binding
  @return The value returned from the execution of the script (if supported by the Script engine)
  @throws javax.script.ScriptException if error occurs in script
  @throws NullPointerException if the argument is null
  @see #eval(javax.script.ScriptEngine, java.io.Reader, groovy.lang.Binding)
  @since 1.7.3