先日リリースされたFirefox21でE4Xが完全削除されました。
https://developer.mozilla.org/ja/docs/Mozilla/Firefox/Releases/21#JavaScript
アリエルではAquaDesignerという製品でがっつりE4Xを使ってました。私が初めてAquaDesignerチームに入った時はまだ私がJavaScript自体にも慣れてなかったこともあり、この奇妙な文法には苦戦させられました。またXMLの作成処理が遅いので試しに
$A(arguments).each(function(dao) {
// dataとsynchronizeDataの戻り値はXMLオブジェクト
data.property += dao.synchronizeData();
});
となってるところを
$A(arguments).each(function(dao) {
data.appendChild(dao.synchronizeData());
});
にしたら15倍速くなったってこともありました(E4Xのプロパティアクセスと比較演算子)。
Firefox17でのE4Xデフォルト無効をきっかけに、AquaDesignerはE4XでやってたXML操作を全部DOMParserやquerySelectorなどに置き換わりました(私が担当したわけではないのですが)。副作用としてこれまでFirefoxでしか動かなかったのがIE10やChromeなどでもそれなりに動くようになりました。もし読者のなかにAquaDesignerのユーザーが居られたらバージョンアップの検討をおすすめします。
ところでnashornのlexerにあるXML_LITERALSってこれはいったい…
http://hg.openjdk.java.net/nashorn/jdk8/nashorn/file/40c107d1ae6f/src/jdk/nashorn/internal/parser/Lexer.java
最近のコメント