feat(js): implementing $watch