Use of `argument.callee` seems heavy.  Why not just call `_mix(receiver[p], val)` ?