deepMixIn (dest, source) {
    if (source) {
      for (var key in source) {
        if (isPrototypePolluted(key)) continue
        const value = source[key]
        const existing = dest[key]
        if (isPlainObject(value) && isPlainObject(existing)) {
          utils.deepMixIn(existing, value)
        } else {
          dest[key] = value
        }
      }
    }
    return dest
  }
Recursively shallow copy enumerable properties from `source` to `dest`.

@example
import { utils } from 'js-data';
const a = { foo: { bar: 'baz' }, beep: 'boop' };
const b = { beep: 'bip' };
utils.deepFillIn(b, a);
console.log(b); // {"foo":{"bar":"baz"},"beep":"boop"}

@method utils.deepMixIn
@param {object} dest The destination object.
@param {object} source The source object.
@see utils.fillIn
@see utils.deepFillIn
@since 3.0.0