visit(flags, visitor) {
      const p = this,
        v = visitor;
      if (flags & SOURCE) {
        visitArray(p.source, p.srcF, v);
        return p;
      }
      if (flags & ADD) visitArray(p.add, p.addF, v);
      if (flags & REM) visitArray(p.rem, p.remF, v);
      if (flags & MOD$1) visitArray(p.mod, p.modF, v);
      const src = p.source;
      if (flags & REFLOW && src) {
        const sum = p.add.length + p.mod.length;
        if (sum === src.length) ;else if (sum) {
          visitArray(src, filter$1(p, ADD_MOD), v);
        } else {
          // if no add/rem/mod tuples, visit source
          visitArray(src, p.srcF, v);
        }
      }
      return p;
    }
Visit one or more tuple sets in this pulse.
@param {number} flags - Flags indicating the tuple set(s) to visit.
  Legal values are ADD, REM, MOD and SOURCE (if a backing data source
  has been set).
@param {function(object):*} - Visitor function invoked per-tuple.
@return {Pulse} - Returns this pulse instance.