Here are some things I ran across while inspecting the effect of implicit return on our code.

1. Recently, PS started putting curly braces around case blocks in switch statements. It seems like this is unnecessary, at least in the examples I was looking at.

2. I noticed that an space was inserted after "default:" in case statements. Since it's followed by a newline, this is unnecessary. I commited a patch to take the space out. This is of course a trivial issue, but it was messing up our diffs in certain circumstances.

3. When defining a setfable place as follows,

  (ps (defun (setf blah) (a b) (whatever)))

and calling it as follows,

  (ps (setf (blah c) d)))

PS insists on assigning the function arguments to temporarily variables before passing them to the function:

"var _js16974 = c;
var _js16973 = d;
__setf_blah(_js16973, _js16974);"

This makes me cringe. Is it really necessary? I'm thinking perhaps there's some weird case where you need to control evaluation differently, but it's obviously not doing so here.

Daniel