The code that's generated for a keyword argument goes like this:<div><div><br></div><div><div>(ps (defun foo (&key a) (bar a)))  => </div><div><br></div><div>(abbreviated for clarity):</div><div><br></div><div>"function foo() {</div>

<div>    var a;</div><div>   // ... pick out and assign keyword args ...</div><div>    if (a === undefined) {</div><div>        a = null;</div><div>    };</div><div>    return bar(a);</div><div>};"</div></div></div>
<div>
<br></div><div>It seems to me that this could be made tighter as follows:</div><div><br></div><div><div>"function foo() {</div><div>    var a = null;</div><div>   // ... pick out and assign keyword args ...</div><div>

    return bar(a);</div><div>};"</div></div><div><br></div><div>The only difference I can think of is when someone explicitly passes undefined</div><div>as a value for the argument, but that's an oxymoronic thing to do.</div>

<div><br></div><div>Can anyone think of a reason not to make this change? I like PS's keyword</div><div>arguments a lot, but the generated JS is bloated enough to make me wince.</div>