code: func (self Otto) Eval(src interface{}) (Value, error) {
  	if self.runtime.scope == nil {
  		self.runtime.enterGlobalScope()
  		defer self.runtime.leaveScope()
  	}
  
  	value, err := self.runtime.cmpl_eval(src, nil)
  	if !value.safe() {
  		value = Value{}
  	}
  	return value, err
  }
docs: // Eval will do the same thing as Run, except without leaving the current scope.
  //
  // By staying in the same scope, the code evaluated has access to everything
  // already defined in the current stack frame. This is most useful in, for
  // example, a debugger call.