semi compile to js