IE7では変数の数の上限が?

[新着] Webテンプレートを仮オープンしました



0   名前: 匿名 : 2007/05/09(水) 08:44  ID:n2TK6swD sub-B3
IE7でjavascriptのテストをしていて気づいたのですが、
奇怪なエラーが発生しています。
IE6だと正しく終了しますが、IE7だとエラーになります。
(構文エラーと言われます。)

再現コード
<html>
<head>
<script>
var a0='';
var a1='';

var a32766='';
var a32767='';//ここでエラー
</script>
</head>
<body></body>
</html>

察するに、IE7では宣言できる変数の数の上限が32767個になっているのでしょうか?
これはIE7の仕様?バグ?
何勝手に上限決めてんねん!という気分。。。

1   名前: 匿名 : 2007/05/09(水) 08:44  ID:Z/T9lFdK sub-kJ
情報感謝です。

ググってみたらこんなものが。
http://www.tutorials-se.com/jscript/Statement-limit/

・変数の上限ではなく、文(ステートメント)の上限らしい?
・IE7 の問題というより、新しい jscript.dll のバグらしい(再現しない IE7 もある)?

まだ全部目を通してないけど、ステートメント数の上限って結構厳しいなあ。

2   名前: 匿名 : 2007/05/09(水) 08:44  ID:Rwha99fS sub-6Z
あら、IE6のメモリーリークが修正されたと思ったら。
でも、これは何とかなりそう?

3   名前: 匿名 : 2007/05/09(水) 08:44  ID:Z/T9lFdK sub-kJ
>>1 より。

・1 つの実行コンテキスト内に 2^32(32768)のステートメントがあると実行できない(関数を分割したり、コンマ文を駆使すれば大丈夫)。
・CScript.exe、WScript.exe から実行しても同様の問題が生じる。
・問題が生じるのは jscript.dll 5.7.0.5730。それ以下は大丈夫。
・Microsoft はこれをバグと認識しており、早急に修正される予定。

大きめのデータを JSON 変換した場合などに支障が出るかと思ってましたが、心配はなさそう。

4   名前: 1 : 2007/05/09(水) 08:44  ID:K4mLUhoy sub-B3
スレ主です。

>>1
>>3

おおお、あれだけ探しても出てこなかった情報が・・・ありがとうございます。

なるほど、バグという認識でよいのですね。
調べてみたら、私の環境もピッタリjscript.dll 5.7.0.5730でした。

>>大きめのデータを JSON 変換した場合などに支障が出るかと思ってましたが、心配はなさそう。

まさにコレでひっかかったためにわかった問題でした・・・
ちょっと(かなり)ホッとしたかも。。。

5   名前: 匿名 : 2007/05/09(水) 08:44  ID:hXgO5q3S sub-B3
このバグいつになったら修正されるんですかね。
どこかに情報ないのかな

6   名前: JScriptKiddy : 2007/05/09(水) 08:44  ID:u2onQn24 sub-.G
Vista版JScriptのバージョンは把握していませんが、
Vista版とXP版では挙動が異なる可能性もあります
(XP版IE7は7.0.5730.11、Vista版IE7は7.0.6000.16414)。

XP版JScriptについては下記のものがあります。
http://support.microsoft.com/?kbid=933812
5.7.0.16450(GDR)
5.7.0.20550(QFE)
別なパッチでQFEフラグが立っていない限りGDRが入ります。
コード書くのが面倒なので再現性は確認していません。
現状では非公開パッチです(HotfixShareに転がっていますが)。

7   名前: JScriptKiddy : 2007/05/09(水) 08:44  ID:Ho/l6s3v sub-.G
情報出てました。
http://support.microsoft.com/?kbid=933873
Hotfixそのものは933812と同じ物です。
/b:SP2QFE オプションを付けてQFE側を入れる必要があるかもしれません。

8   名前: 匿名 : 2007/05/09(水) 08:44  ID:BD0Er6nW sub-Cz
おお、サンクスです。

一覧へ戻る