A constraint solver for JavaScript