strict モードでは、 への間接呼び出しは eval コードでグローバル オブジェクトにバインドされているeval
必要があります。this
10.4.2: 第 5 版では、eval 関数への間接呼び出しは、eval コードの変数環境とレキシカル環境の両方としてグローバル環境を使用します。第 3 版では、間接 eval の呼び出し元の変数および字句環境が、eval コードの環境として使用されました。
ただし、Opera では、この式は次のようになりundefined
ます。
(function(){'use strict'; return (0 || eval)('this'); }())
Chrome と Firefox は期待どおりに動作します。
ここでこれを見つけました:http://kangax.github.com/jstests/indirect-eval-testsuite/
これはブラウザのバグですか?もしそうなら、それはまだ追跡されていますか?
Opera と Safari で一部の形式の間接評価が失敗するのはなぜですか?も参照してください。