IE では配列の最後に , を付けてはいけない
プログラミング/JavaScript/IE では配列の最後に , を付けてはいけない†
このサイトでは shjs というライブラリを使ってソースコードのシンタックスハイライトをしています。 pukiwiki 用のプラグインは ソフトウェア/pukiwiki/texthighlight.inc.php です。
shjs ライブラリは JavaScript で書かれた言語定義ファイルを追加してやることで、 標準ではサポートされない言語にも比較的簡単に対応することができるため、 本サイトでは verilog や xilinx の xcf ファイルなどもカラー表示できるようになっています。
ところが、あるときから IE でこの機能が動作していませんでした。 Firefox や Chrome では問題なかったので気づきませんでした。
現象としては、verilog 言語のソースが貼られたページでのみ、 左下に黄色いびっくりマークが出て、「'0' はNULLまたはオブジェクトではありません」となります。
検索してみると、以下のサイトで書かれているのと同じ原因でした。
http://parktown.seesaa.net/article/141926616.html
以下のサイトでは同じIEでも古い方は最後のカンマを普通通りに解釈していたのに、 途中で独自仕様の側に振れたというようなことが書かれています。
http://homepage3.nifty.com/aya_js/js3/js313.htm
JavaScript の言語定義でどうなっているのか調べきれなかったのですが、 他のスクリプト言語や JSON との整合性を考えると 配列の最後のカンマのみの項は無視してくれた方が便利なのに、 泣かせてくれます。IE のは JavaScript じゃなくて JScript だということなのかもしれませんが。
それとも、.js ファイルを IE に標準 JavaScript (?) として解釈させる方法とか あるんでしょうか。