constructor(idGenerator, upper, count) {
		/**
		 * The ID generator that will generate segment IDs for any new
		 * segments that are created.
		 * @type {IdGenerator}
		 */
		this.idGenerator = idGenerator;

		/**
		 * The preceding fork context.
		 * @type {ForkContext|null}
		 */
		this.upper = upper;

		/**
		 * The number of elements in each element of `segmentsList`. In most
		 * cases, this is 1 but can be 2 when there is a `finally` present,
		 * which forks the code path outside of normal flow. In the case of nested
		 * `finally` blocks, this can be a multiple of 2.
		 * @type {number}
		 */
		this.count = count;

		/**
		 * The segments within this context. Each element in this array has
		 * `count` elements that represent one step in each fork. For example,
		 * when `segmentsList` is `[[a, b], [c, d], [e, f]]`, there is one path
		 * a->c->e and one path b->d->f, and `count` is 2 because each element
		 * is an array with two elements.
		 * @type {Array<Array<CodePathSegment>>}
		 */
		this.segmentsList = [];
	}
Creates a new instance.
@param {IdGenerator} idGenerator An identifier generator for segments.
@param {ForkContext|null} upper The preceding fork context.
@param {number} count The number of parallel segments in each element
     of `segmentsList`.