function resolveAll(constructs, events, context) {
  /** @type {Array<Resolver>} */
  const called = []
  let index = -1

  while (++index < constructs.length) {
    const resolve = constructs[index].resolveAll

    if (resolve && !called.includes(resolve)) {
      events = resolve(events, context)
      called.push(resolve)
    }
  }

  return events
}
Call all `resolveAll`s.

@param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs
  List of constructs, optionally with `resolveAll`s.
@param {Array<Event>} events
  List of events.
@param {TokenizeContext} context
  Context used by `tokenize`.
@returns {Array<Event>}
  Changed events.