2008-04-25

Safariの変更を追跡する

以前にSafariの特徴的な振る舞いについて記事を書いたのですが、状況が変わったようです。最近、Win版Safariの3.1.1が配布されたのをきっかけに次の二点について再確認を行ったところ、他の主要ブラウザに合せる形で修正されていました。

 1.組み込みオブジェクトの文字列表現が"[function]"となる
 2.未定義値が設定された配列インデックスはfor inやhasOwnProperty()関数で無いものとして扱われる

っで、どのバージョンで修正されたのか知りたかったので1について調べてみました。
まずSafariのJavaScript実装である、KJSを管理しているTracを眺めて、Changeset 29817のfunction_object.cpp(r29817)で修正されていることを見つけました(多分これだと思います…)。

http://trac.webkit.org/projects/webkit/changeset/29817

次にWikipediaにSafariのバージョンとビルド番号の対応表を参考に、Tracのタグを眺めたところWin版Safariはr29817を3.1から3.1.1へのバージョンアップで取り込んでいるようで、最新の3.1.1から振る舞いが変わるようです(Tracには五千番台のビルド番号もあるのですがこれはMac版かな…)。

http://ja.wikipedia.org/wiki/Safari

こういった追跡は他のプロジェクトのChangeLogやコミットコメントを眺める事になるので、書き方など色々と勉強になります。

1 件のコメント:

nakajiman さんのコメント...

とうとうバグデータベースまで追跡するようになってしまいましたか。オープンソースは、ソースを読むか履歴を調べるの手っ取り早いんですよね。

この間 Bugzilla@Mozilla を調べることがあったのですが、大規模過ぎて、探すのが難しい。結局 Operator Addon のソースコードを解析してその原因が分かりました。