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