add javascript port and update docs