process(node = this.node) {
    const { children, segment } = node
    if (children.length === 0) {
      segment._exclusiveDuration = segment.getDurationInMillis()
      if (this.parentStack.length) {
        this.finishLeaf(segment.timer.toRange())
      }
    } else {
      this.parentStack.push({
        childrenLeft: children.length,
        segment,
        childPairs: []
      })
      for (let i = children.length - 1; i >= 0; --i) {
        this.process(children[i])
      }
    }
  }
Kicks off the exclusive duration calculation.  This is performed
using a depth first, postorder traversal over the tree recursively

@param {Node} node to process duration and children