runSync(tree, file) {
    /** @type {boolean} */
    let complete = false
    /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */
    let result

    this.run(tree, file, realDone)

    assertDone('runSync', 'run', complete)
    assert(result, 'we either bailed on an error or have a tree')
    return result

    /**
     * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}
     */
    function realDone(error, tree) {
      bail(error)
      result = tree
      complete = true
    }
  }
Run *transformers* on a syntax tree.

An error is thrown if asynchronous transforms are configured.

> **Note**: `runSync` freezes the processor if not already *frozen*.

> **Note**: `runSync` performs the run phase, not other phases.

@param {HeadTree extends undefined ? Node : HeadTree} tree
  Tree to transform and inspect.
@param {Compatible | undefined} [file]
  File associated with `node` (optional); any value accepted as `x` in
  `new VFile(x)`.
@returns {TailTree extends undefined ? Node : TailTree}
  Transformed tree.