@eagleoutice/flowr - v2.17.4
    Preparing search index...

    Abstract interpreter conducting taint analyses, i.e. applying finite taint lattices on the control-flow graph. All components are evaluated simultaneously during a single control-flow traversal and their taints are combined into a product of the lattice values per CFG node, joined (and widened) component-wise. Optional reductions turn the otherwise direct product into a reduced product, allowing the component analyses to refine each other. A node reaching Bottom marks a finding, so it does not collapse the state.

    Please prefer using the FlowrAnalyzer.taint method to create a taint analysis.

    Hierarchy (View Summary)

    Index
    analysis: Readonly<AbsintAnalysis<Domains>>

    The abstract interpretation analysis performed by the visitor, defining the abstract domains, their abstract semantics, and the reductions between them.

    config: AbsintVisitorConfiguration & { defaultVisitingOrder: "forward" }
    currentState: MultiValueStateDomain<Partial<TaintProduct>>

    The current abstract state domain at the currently processed AST node.

    stateDomain: MultiValueStateDomain<Partial<TaintProduct>>

    The state abstract domain used by the abstract interpretation visitor.

    trace: Map<
        NodeId,
        MultiValueStateDomain<
            Partial<TaintProduct>,
            StateDomainLift<MultiValueDomain<Partial<(...)>>>,
        >,
    > = ...

    The abstract trace of the abstract interpretation visitor mapping node IDs to the abstract state at the respective node.

    visited: Map<NodeId, number>
    • Fires for every named call not handled by a specific overload, e.g. foo(x) for a user-defined foo. flowR does not care about the dataflow impact of these (currently); use SemanticCfgGuidedVisitor#getOrigins|getOrigins to get the call's origins. Anonymous calls, which cannot be resolved via the active environment, go through SemanticCfgGuidedVisitor#onUnnamedCall|onUnnamedCall instead.

      Parameters

      Returns void

    • Fires for every anonymous call, e.g. (function(x) { x + 1 })(42) or the second call in a()(), whose target cannot be inferred from a name (use SemanticCfgGuidedVisitor#getOrigins|getOrigins). Named calls go through SemanticCfgGuidedVisitor#onDefaultFunctionCall|onDefaultFunctionCall instead.

      Parameters

      Returns void