code: func (value Value) Call(this Value, argumentList ...interface{}) (Value, error) {
  	result := Value{}
  	err := catchPanic(func() {
  		// FIXME
  		result = value.call(nil, this, argumentList...)
  	})
  	if !value.safe() {
  		value = Value{}
  	}
  	return result, err
  }
docs: // Call the value as a function with the given this value and argument list and
  // return the result of invocation. It is essentially equivalent to:
  //
  //		value.apply(thisValue, argumentList)
  //
  // An undefined value and an error will result if:
  //
  //		1. There is an error during conversion of the argument list
  //		2. The value is not actually a function
  //		3. An (uncaught) exception is thrown
  //