esgraph

creates a control flow graph from an esprima abstract syntax tree

esgraph

creates a control flow graph from an esprima abstract syntax tree

$ npm install esgraph
var cfg = esgraph(esprima.parse(ast));
// cfg[0] is the start node, cfg[1] is the end node 
 
// a node may have any of the following properties: 
node.normal; // the next statement reached via normal flow 
node.true; // the next statement reached when `node.astNode` evaluates to true 
node.false; // the next statement reached when `node.astNode` evaluates to false 
node.exception; // the next statement reached when `node.astNode` throws 
 
// additionally, each node has: 
node.astNode; // this is the original esprima AST node, either a statement or an expression 
node.prev; // an array of predecessor nodes. since they can be more than one 
// per type, they are not grouped by type 

LGPLv3