jQuery内部でnew Date()が「このオブジェクトではサポートされていない操作です」というエラーになる
jQueryの内部でnew Date()
が「このオブジェクトではサポートされていない操作です」というエラーを吐いています。
これを回避する方法が知りたいです。
再現条件が分からず、最小限の再現ソースを提示できないので、代わりに状況を説明させてください。
なお、再現を確認した環境はIE11とEdgeです。Chromeでは発生していません。
次の画像は、IE11の開発者ツール(F12)です。
見えているソースは、jQuery 1.11.3のものです。
次の画像は、上記のエラー発生時のコールスタックです。
上から8つ目のrequest.js
は、私が書いたコードです。
jQueryのajax
メソッドを呼んでいます。
次の画像は、エラー発生時にデバッガが止まっている状況で、変数ウォッチからグローバル変数Date
を確認したところです。
なぜかundefined
になっています。
エラーの根本的な原因は分かりませんが、直接的な原因はこれのようです。
次の画像は、上記と同様にjQuery
変数が存在しているかどうか確認したところです。
jQuery
は見つかりましたが、なぜか$
がundefined
です。
次の画像は、上記のウォッチで確認しているときにIEがクラッシュしたところです。
ウォッチのリストに、jQuery
をもう一度追加したところでクラッシュしました。
何度か試しましたところ、クラッシュのタイミングは若干前後するものの、jQuery
を2回以上ウォッチに追加することで再現します。
追記
上記の問題のコードでは必ず発生します。
コールスタックの上から6番目、「非同期呼び出し」の次の行にあるsendの部分でブレークポイントを貼って止めてみると、その時点ではDateが存在します。
また、Dateがundefinedだったのと同様に、StringやNumberなどもundefinedになっていました。