add js_of_ocaml support