下記のようなページを実行すると、Firefox11とIE8だとエラーになって、Chrome18だとエラーとならずにalertが実行されました。
<html> <body> <script type="text/javascript"> var alert = alert; alert(1); </script> </body> </html>
Firefox、IEの動作だと、var宣言された時点で、右辺のその変数が未定義扱いとなっているようです。
もともとは、下記のようなコードがFirefoxで動作しなくて気がつきました。
(これはグローバルコンテキストで実行された場合で、関数内なら意図した動作(window.URLが代入)になります)
var URL = window.URL || window.webkitURL;