delete blank lines

相変わらずjavascript golfがはやってんな。twitterでもいろいろやり取りされてて、なかなか楽しそうだ。そんな中、delete blank linesの記録が更新された。33Bだ。
もともと、この→https://bugzilla.mozilla.org/show_bug.cgi?id=355827バグのために、readline()の空行(blank lines)とEOFが区別できず、それを回避したコードで35Bだった。35Bはこんな↓感じだ。

for(r=readline;l=r()||r();)print(l)

EOFと空行が区別できると、

for(;l=readline(),l!=null;)〜

といった書き方ができる。さらに、

for(;l=readline(),l+0;)〜

といった書き方も可能だ。これは、l が空文字列の時は、''+0 は、'0'という文字列になり、条件は true となるが、l がnullの場合は、null+0 は、数値 0 となって、条件が false となるためうまく動くというものだ。なお、後者は、なんとなく NaN になるのかと思っていたのだが、0 だった。ECMA-262をみたら、オペランドは足し算の前に、ToNumber()オペレーターにより、

Undefined type -> NaN
Null type      -> +0

に変換されると明確にセマンティックスが定義されていた。
(元の話題にもどって)ただ、これをやっても、delete blank lines は、34Bだな。もっとうまい方法があるのだろうか。
最近、example_com が更新されたり、exit statusが更新されたり、かつて限界と思われていたものが越されていく。おもしろいもんだね。fibonacciも、そのうち 31B が出るんだろうか。個人的には、FizzBuzzの 55B の方が出したいな。いままで幾度となく挑戦したけどだめだった。
javascriptついでに、、、minimal PostScript interpreterが、トップの murky-satyrさんの51Bに追いついた。53Bから2B縮めたわけだが、この最後の2Bはプチ感動だった。このパターンは、かつてもあったけど、今回のは、ひねりが入っているところが面白い。c しか見てなかったからな。。。