Arrayl.813WebKitでは、NodeList#toArrayにネイティブ実装を使う。できれば、パフォーマンスのためのコードは、一目でわかるようにしておいて欲しいorおきたい。パフォーマンスのためなのか、互換性のためなのかがわからない。0;で配列の初期化ができるとは、知らなかった。ちなみに、元の長さより長くすると、undefinedでpadされる。l.877array.uniq遅そう。arrayがソート済みの場合、array.uniq(true)でずいぶん速くなりそう。次のintersectもdetectで遅そうだけど、arrayはEnumerableであれば何でもよさそうなので、これでいいか。Enumerableって、極端な話、each実行するたびに結果が違ってもいいんだもんな。Numberl.956toColorPart:0-255の値を2桁16進にするためのコード。Number#ceilにしてる。methodize().Hashl.987いきなりのif文がわけわからないが、なにかの挙動の違いで、パフォーマンスをあげようとしているのだろうか。v1.6.0.1ではなくなっているので、あまり気にしないで読み進む。両方のアクセス方法を許すようなコードが書かれている。この場合は、toQueryPairは、外からはアクセスできない。1.5時代のソースも見てみると、Hashががらりと変わっていることに気がつく。1.5では、値をthis自身に、1.6では、値をthis._objectに格納している。3うーん、これは結構使ってしまっている気がするんだなぁ。curryに緊張が走る。配列をQueryStringに変換する際、toQueryPairの第一引数を固定しているだけのようだ。[1,2,3]}).toQueryString()"a=1&a=2&a=3"そういえば、最近、近所の交差点がcurry激戦区になりつつある。1.6間でHashの実装が大きく変わったのは、これが原因のような気もする、この関数。evaluateの中で勝手に呼ばれるので、気にする事はない。."ObjectRangeRubyのRangeみたいなの。DOMのRangeとかぶるので、ObjectRangeらしい。exclusiveは、最後の要素を含まないか含むか。endは、比較可能で、succが実装されていれば何でもよい。比較も、オーバライド可能なメソッドにしてほしいな。Arrayは比較可能なので、Array.prototype.succを実装すると、ObjectRangeで使えるようになると思う。1]]Ajax.RespondersAjaxのリクエストに関するイベントリスナを管理している。l.1162なぜapplyの第一引数がresponderなのか、という話題になる。いう使い方をしたいから、という気がする。Ajax.Responders.unregister(this)}});Ajax.Baseあんまり読みどころがない。目がAjax.Requestの中の$superを見つけてしまう。$super(options);という使われ方から、親クラスのメソッドを呼び出す関数だというのはわかるのだが・・・$superで検索すると、文字列として見つかる。