code: function shallowCopy(src, dst) {
    var i = 0;
    if (isArray(src)) {
      dst = dst || [];
  
      for (; i < src.length; i++) {
        dst[i] = src[i];
      }
    } else if (isObject(src)) {
      dst = dst || {};
  
      var keys = Object.keys(src);
  
      for (var l = keys.length; i < l; i++) {
        var key = keys[i];
  
        if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {
          dst[key] = src[key];
        }
      }
    }
  
    return dst || src;
  }
docs: Creates a shallow copy of an object, an array or a primitive