The code that's generated for a keyword argument goes like this:
(ps (defun foo (&key a) (bar a))) =>
(abbreviated for clarity):
"function foo() { var a; // ... pick out and assign keyword args ... if (a === undefined) { a = null; }; return bar(a); };"
It seems to me that this could be made tighter as follows:
"function foo() { var a = null; // ... pick out and assign keyword args ... return bar(a); };"
The only difference I can think of is when someone explicitly passes undefined as a value for the argument, but that's an oxymoronic thing to do.
Can anyone think of a reason not to make this change? I like PS's keyword arguments a lot, but the generated JS is bloated enough to make me wince.