script要素のバグを修正
script要素の処理でバグ
version 8 betaのテストを繰り返していましたが、script要素でバグがありました。
with構文で囲ったスクリプトについて
たとえば、以下のようなコードがあったとします。
function a() { document; };
ベータ版では、これをwith構文で囲ってサンドボックスを実現しようとしました。
with ({document: NAIBU.document}){ function a() { document; //NAIBU.document ? }; }
ところが、上のコードは、functionの巻上げによって、次のようなコードと同等となってしまいます。
function a() { document; //NAIBU.documentではない }; with ({document: NAIBU.document}){ }
したがって、上記の変数documentは、サンドボックス内に閉じ込めておくことができず、予想とは違う値を返してきます。
ベータ版の修正
そこで、ベータ版を修正したのですが、さまざまな方法があります。他にもscript要素関連には、バグがあるとみて、テストを繰り返しながら、修正していきます。