When PS hoists the declaration of a variable, it should probably check for duplicates:

(ps (defun blah ()
      (list (let ((foo 12)) (* foo 2))
            (let ((foo 13)) (* foo 3)))))
    
=>
                  
"function blah() {
    var foo;
    var foo;
    return [(foo = 12, foo * 2), (foo = 13, foo * 3)];
};"