Posted by & filed under いろいろ.


先日リリースされた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


関連文書:

  • 関連文書は見つからんがな

Comments are closed.