IE10 for Windows7がリリースされました。
で、早速検証してみたわけですが、stacktrace.jsで
『strict モードでは、関数または arguments オブジェクトの 'caller' プロパティを使用できません』
と怒られる(時がある)ことが判明。stacktrace.jsの内部では、"use strict"とは一言も書いてないのに。
しかも、ChromeやFirefoxでは発生しないんですよねぇ…
もしかして、IE10では、strictモードが外部のスクリプトファイルへ継承されるのかもしれません。いや、ちゃんと調べてないけども。
さて、とりあえずこの問題を回避するために、strictモードの場合はstacktrace.jsを使わないコードを書こうと思いました。
strictモードかどうかの判定はどのようにやるべきでしょうか?
答えは
var strictMode = (function() { try { arguments.caller != null; return false; } catch (e) { return true; } })();
です。他にも有るかもしれませんが、僕はコレで。