Similar to `NameError#receiver`, NameError#receiver, this returns the object on which the modification was attempted. This is useful as it can pinpoint exactly what is frozen, as in many cases when a `FrozenError` FrozenError is raised, you cannot determine from the context which object is frozen that you expect not to be. I'm not sure that using name_err_receiver as the C function for `FrozenError#receiver` FrozenError#receiver is acceptable, but it doesn't appear to cause problems. Users of the current `rb_error_frozen` rb_error_frozen C function will have to switch to using `rb_error_frozen_object` rb_error_frozen_object or the new `rb_raise_frozen_error` rb_raise_frozen_error in order to set the receiver of the `FrozenError`. FrozenError. Patch to implement this feature is attached.