improve js, add travis ci support