IE7では変数の数の上限が?
-
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
- おお、サンクスです。