こんばんは。五寳です。
すでに IEBlog を読まれた方もいらっしゃるかと思いますが、IE8 RC から RTW にかけて、JScript に変更が入りました。IEBlog でも JScript Blog でも同じことを書いているようなので、ここでは IEBlog のリンクを貼っておきます。IE Blog : What’s new in JScript for IE8
上記の記事も含めて IE8 Beta ~ RC ~ RTW で、Jscript がどのように変わってきたのか、簡潔にまとめるとこんな感じでしょうか?
つまり RTW では、レイアウトモードが "IE8 標準モード" にセットされている時だけ、特に互換性の面で問題が多かった、native JSON 対応と、DOM Prototypes を利用するための accessor methods が機能するようになります。それ以外のレイアウトモードでは、基本的には IE7 の Jscript.dll を呼び出しているのと同じになります。
IE8 の大きな機能のひとつでもある、互換モードの搭載においては、基本的に HTML/CSS といったいわゆる Trident と呼ばれる MSHTML エンジン部分の切り替えのみで、それまでは JScript エンジンはいくら互換モードや Quirks にしても最新の実装になっていました。これによって、RC でも、互換モードで表示してるのにスクリプトがうまく動かないとか、CSS もチェックしたのになぜか表示が崩れるという問題を抱えていたりしていました。
私が JScript チームからこの仕様変更を聞いたきっかけは、RC のリリース後に妙に Jscript に絡んだレポートが多かったので、Jscript チームに 「RC で何か大きな仕様変更入れたの?」と質問したことでした。その時の彼らからの返事の中に、「Jscript にはあんまり変更は入れてないんだけど、AJAX のための DOM に結構変更がはいったので、よく Jscript エンジンに何か変更が加わったのでは?という誤解と質問を受けてるよ。だけど RTW に向けては互換性のことも考えて、こういうことのないように、Jscript Versoning という新機能をいれるつもりだ」と。
オイオイ、RC 以降にそんな仕様変更いれていいのか?と思いましたが、Beta2, RC でいただいたフィードバックを見て、互換性を確保するために決断した修正であり、且つ既存の環境に影響を与えない変更だったので、仕様変更とはいえ、結果的には多くの問題を回避することができたのではないか?と思います。
追記:イベントで Jscript が変わったら、WSH (Windows Scripting Host) にも影響があるのか?という質問を受けましたが、確認したところ影響は受けないということでした。
PingBack from http://www.sandeinc.com/~eguchi/diary/20090412.html#p03
少し前の話になりますが、6月6日のVSUG Dayにて、開発者のInternet Explorer 8対応について話をさせていただきました。 そのフォローアップとして少し情報を記述しておきます。 [その1]IE8のイントラネットでのレンダリングモードはIE8互換モード(IE7同等)