docs: function(src, dst, opt_overwriteBehavior) {
      Object.keys(src).forEach(function(key) {
        if (opt_overwriteBehavior === 2 && dst[key] !== undefined) {
          return;
        }
        var value = src[key];
        if (value instanceof Array) {
          var newDst = dst[key];
          if (!newDst) {
            newDst = [];
            dst[name] = newDst;
          }
          copyProperties(value, newDst, opt_overwriteBehavior);
        } else if (value instanceof Object &&
                   !(value instanceof Function) &&
                   !(value instanceof HTMLElement)) {
          var newDst2 = dst[key];
          if (!newDst2) {
            newDst2 = {};
            dst[key] = newDst2;
          }
          copyProperties(value, newDst2, opt_overwriteBehavior);
        } else {
          if (opt_overwriteBehavior === 1 && dst[key] !== undefined) {
            return;
          }
          dst[key] = value;
        }
      });
      return dst;
    }