Use restructuring assignment
Make `gc` more readable by extracting hasListeners property
Trigger change event if value in other object has changed while no listeners were attached, closes #87