PS' implementation of &optional function arguments breaks because of JS's weird short-circuiting. For example,
(ps (defun blah (&optional (x 0))
(return x)))
=> "function blah(x) { x = undefined === x && 0 || x; return x; };"
With this implementation, blah() is undefined when it should return 0.
A patch is below.
Daniel
hunk ./src/special-forms.lisp 268
- `(setf ,place (or (and (=== undefined ,place) ,value)
- ,place)))
+ `(setf ,place (if (=== ,place undefined) ,value ,place)))