code: function mergeArray(a, b) {
    var adds = [];
    var ai = 0;
  
    for (var i = 0; i < b.length; i++) {
      if (('object' === type(a[i]) && 'object' === type(b[i]))
      ||  ('array' === type(a[i]) && 'array' === type(b[i]))) {
        a[i] = merge(a[i], b[i]);
      } else if ('object' === type(b[i])) {
        adds.push(merge({}, b[i]));
      } else if ('array' === type(b[i])) {
        adds.push(merge([], b[i]));
      } else if (!~a.indexOf(b[i])) {
        adds.push(b[i]);
      }
    }
  
    for (; ai < adds.length; ai++) {
      a.push(adds[ai]);
    }
  
    return a;
  }
docs: /*!
  Start merge scenario for arrays.
  
  @param {Array} destination
  @param {Array} source
  @return {Array} destination merged
  @api private