0.1.1 • Published 11 years ago

dfatool v0.1.1

Weekly downloads
3
License
-
Repository
github
Last release
11 years ago

dfatool.js is a data flow analyze tool for javascript code runs on node.js.

The code analyze is based on Parser API AST, which you can generated with Esprima. And Escodegen is needed for the final output code regenerate.

Install

npm install dfatool

Usage

Use Esprima to generate AST

var ast = esprima.parse(data, {
	loc : true
});

Build scope for the program

var globalScope = dfatool.globalScope
dfatool.buildScope(ast, globalScope);

anaylyze the code

globalScope.initialize();
globalScope.derivation();

Get the variable defined in a specific scope

var variable = scope.getDefine("variableName");

Inference the variable's value in a specific position of program

var loc = {
	line : 20,
	column : 20
};
var value = variable.inference( scope.offsetLoc(loc) );

Inference the type(object,function,array,literal,expression)

var type = value.type

Read property of the value( support prototype chain look up)

var property = value.access("propName.propName");

If the value is an array

var elem = value.access(10);

If the value is an function, you can simulate an function call

var returnedVariable = value.execute(callExprAST, scope);
0.1.1

11 years ago

0.1.0

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago