code: func (self Otto) Set(name string, value interface{}) error {
  	{
  		value, err := self.ToValue(value)
  		if err != nil {
  			return err
  		}
  		err = catchPanic(func() {
  			self.setValue(name, value)
  		})
  		return err
  	}
  }
docs: // Set the top-level binding of the given name to the given value.
  //
  // Set will automatically apply ToValue to the given value in order
  // to convert it to a JavaScript value (type Value).
  //
  // If there is an error (like the binding is read-only, or the ToValue conversion
  // fails), then an error is returned.
  //
  // If the top-level binding does not exist, it will be created.