Constraint Programming for Dynamic Symbolic Execution of JavaScript