妄言

いや、昨日書いたこと、ちょい間違いが多すぎて我ながらいやになったのでした。今日書くことも妄言なのですけれど。
でもまぁ、Functionコンストラクタでxwhile(xがついてる!)という名前の関数を定義するときに、実際にはevalでうけておいて、evalにはコメント開始(/*)を引き渡す、みたいなことをしていたので、ブラウザが沈黙していたのでした。なぁんだ。というかビックリ。変態。
それと、script要素内の記述において、たとえば、Firefoxでは、ユニコードエスケープ済みの表現をしても良さそうだ、などとあいまいに捉えていたのですが、例外があるのだなぁということも勉強になったり。alert(99)のaだけユニコードエスケープしてもオッケーなんだけれど、whileはだめ。\u0077hileというのは、厳密にwhileとは別物、とFirefoxは判定してくれているようです。なるほど。だから、Firefoxでは、while(1)ループを、\u0077hile(1)という関数であるという風に上書きはできない模様。他のブラウザは知らないけれど…それとそもそものキッカケは、1行でwhile(1){}と書くとループしてくれるわけで、実際にGoogleなサイトではそれを善用しているらしいのですが、これが2行の場合、つまり)の後ろで改行してくれているのなら、while()という偽装関数(if作れれば!)のあとにブラウザがセミコロンを自動挿入してくれているはずなんだけれど、これ、ブラウザごとに微妙に仕様が違うらしい、なんてことを考えていたのですが、なかなかねぇ。
でもまぁ、微妙なんで、オイラがGoogleと同じことをしたいのならば、while(必ずtrueが返る複雑な論理式){}みたいにして、全体としては関数としては評価しずらいようにするかもしれない。などと妄言。いや、変なブラウザがあったら困るからなんだけれど。
考え直しました。きっとJSONPデータをGETではアクセスできないようにするのが一番簡単ですよね。そうすればscript要素では使えない、XHRでしか利用できない、だから同一ドメインでしか利用できない、こうすればオケ。