John Resig - JavaScript, Programming, and Web Applications

人気の高いJavaScript Ajaxフレームワークの開発者であり、MozillaのJavaScript Evangelistを務めるJohn ResigがJohn Resig - HTML 5 Parsingにおいて、開発中のMozilla Firefox/Geckoエンジンに最近追加されたHTML 5パース機能に関する興味深い内容を伝えている。W3CがXHTML 2の更新停止とHTML 5の推進を明らかにしてから、HTML 5の取り組みに関する話題が活発化している。John ResigがJohn Resig - HTML 5 Parsingで取り上げた内容も、そうしたひとつ。

Mozillaの開発リポジトリにHTML 5パーサの実装が追加された。これはHenri Sivonen氏が開発したValidator.nu (X)HTML5 Validatorをベースにしたもの。Validator.nu (X)HTML5 Validatorは初期に実装されたHTML 5パーシングルール実装のひとつで、Javaで実装されSAX/DOM/XOMインタフェースを提供している。XHTML 1.0に対応したアプリのXMLパーサをそのまま置き換えることが可能。BSD LicenseほかいくつかのOSSライセンスで提供されており、今回この実装がFirefox/Geckoに取り込まれた。

ここからが興味深い。Henri Sivonen氏はValidator.nu (X)HTML5 Validatorを取り込むにあたって、JavaのソースコードをC++に自動変換する処理を追加。手動で実施することなく、自動的に変換したコードをGeckoに取り込ませることに成功したという。John Resig氏は、いつもであればこうした自動変換されたソースコードには懐疑的だと前置きしたうえで、しかしながら結果は驚くべきもので、従来のコードと比較して3%(1 - 4%)の性能改善が実現されたと報告している。

新しく追加されたHTML 5のパース機能を試すには、最新のナイトリービルドが必要。about:configで「html5.enable」をtrueに設定変更すれば有効になるという。