visualizer/actions.js
function jumpToState () {
    return ({ merged, nodeId, excludeTypes }) => {
      state.focusedNodeId = nodeId
      state.control.merged = merged
      state.typeFilters.enableInlinable = !merged
      state.key.enableOptUnopt = !merged

      // Diff type exclude state to reach the one described by the entry
      const oldExclude = state.typeFilters.exclude
      const newExclude = new Set(excludeTypes)
      oldExclude.forEach((name) => {
        if (!newExclude.has(name)) {
          flamegraph.typeShow(name)
        }
      })
      newExclude.forEach((name) => {
        if (!oldExclude.has(name)) {
          flamegraph.typeHide(name)
        }
      })
      state.typeFilters.exclude = newExclude
      state.typeFilters.bgs = state.control.tiers
        ? highlightTypeFilters()
        : state.typeFilters.unhighlighted

      flamegraph.renderTree(merged ? state.trees.merged : state.trees.unmerged)
      const { idsToNodes } = merged ? mergedTags : unmergedTags
      flamegraph.zoom(idsToNodes.get(nodeId))

      emit(state)
    }
  }
function jumpToState () {
    return ({ merged, nodeId, excludeTypes }) => {
      state.focusedNodeId = nodeId
      state.control.merged = merged
      state.typeFilters.enableInlinable = !merged
      state.key.enableOptUnopt = !merged

      // Diff type exclude state to reach the one described by the entry
      const oldExclude = state.typeFilters.exclude
      const newExclude = new Set(excludeTypes)
      oldExclude.forEach((name) => {
        if (!newExclude.has(name)) {
          flamegraph.typeShow(name)
        }
      })
      newExclude.forEach((name) => {
        if (!oldExclude.has(name)) {
          flamegraph.typeHide(name)
        }
      })
      state.typeFilters.exclude = newExclude
      state.typeFilters.bgs = state.control.tiers
        ? highlightTypeFilters()
        : state.typeFilters.unhighlighted

      flamegraph.renderTree(merged ? state.trees.merged : state.trees.unmerged)
      const { idsToNodes } = merged ? mergedTags : unmergedTags
      flamegraph.zoom(idsToNodes.get(nodeId))

      emit(state)
    }
  }
function jumpToState ( ) { return ( { merged , nodeId , excludeTypes } ) => { state . focusedNodeId = nodeId state . control . merged = merged state . typeFilters . enableInlinable = ! merged state . key . enableOptUnopt = ! merged // Diff type exclude state to reach the one described by the entry const oldExclude = state . typeFilters . exclude const newExclude = new Set ( excludeTypes ) oldExclude . forEach ( ( name ) => { if ( ! newExclude . has ( name ) ) { flamegraph . typeShow ( name ) } } ) newExclude . forEach ( ( name ) => { if ( ! oldExclude . has ( name ) ) { flamegraph . typeHide ( name ) } } ) state . typeFilters . exclude = newExclude state . typeFilters . bgs = state . control . tiers ? highlightTypeFilters ( ) : state . typeFilters . unhighlighted flamegraph . renderTree ( merged ? state . trees . merged : state . trees . unmerged ) const { idsToNodes } = merged ? mergedTags : unmergedTags flamegraph . zoom ( idsToNodes . get ( nodeId ) ) emit ( state ) } }
Jump to a state based on a history entry.
Jump to a state based on a history entry .