js2-mode with some improvements