Compares value with expected and replaces it with new value if values matches.
If new value is not null, it must be frozen or permanent object.
Parameters
expected
- the expected value
new
- the new value
Exceptions
InvalidMutabilityException
- if new is not frozen or a permanent object
Return the old value