implement js-3
Merge branch 'js-dev'