dosa

A Javascript transpiler for instrumentation

Usage no npm install needed!

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

README

dosa

A Javascript transpiler for instrumentation

Install

npm install dosa

Usage

var dosa = require('dosa');
var input = "var a = location.hash.split('#')[1]";
var output = dosa.instrument(input);
console.log(output);
// var a = box_accessor(box_call(location.hash.split(box_string("#"))), 1);

Instrumentation

This is how the code will be instrumented

func()

box_call(func())

a[1]

box_accessor(a, 1)

a+b

box_binary(a, b, "+")

"str"

box_string("str")

Credits

I found the UglifyJS project's AST structure to be very expressive and made writing this transpiler easier for me.