A functional and reactive JavaScript framework for predictable code