vannotate

Generate Javascript code annotations

Usage no npm install needed!

<script type="module">
  import vannotate from 'https://cdn.skypack.dev/vannotate';
</script>

README

vAnnotate

Annotates variables in Javascript code with the values they take during execution.

You'll need a static html page that links Javascript files

Installation

sudo npm install -g vannotate

(Or download the Github repo and run node lib/vAnnotate.)

Usage

vAnnotate

This will make the current working directory accessible at http://localhost:7000.

In there you can open the static html file. vAnnotate will collect the annotation data and the annotated code is made available at http://localhost:7000/vAnnotate/results.

Additional command-line options

vAnnotate --port 1234

Change port where static files are served.

How it works

vAnnotate creates a static files server to serve the Html and Javascript code. When a .js file is requested it injects logging instructions into the file, for example for function calls and variable assignments.

Known issues

  • Logging assignments to member expressions can currently have side effects. For example if you run a[fn()] = b fn will be called twice - once for the assignment and once for the logging call. To fix this we need to move the object properties to separate variables before doing the assignment and the logging.

Running the tests

Install PhantomJS and jasmine-node, then run jasmine-node ..