A Better Project@はてなダイアリー(インポート版)

基本的にここは更新されません。詳細はaboutへ。

__noSuchMethod__ のバグ

__noSuchMethod__について - 素人がプログラミングを勉強するブログ
__noSuchMethod__ - Mozilla Developer Center
気になったので調べてみたところ、MDC の注意書きは記述不足だったようです。ちなみに、記述不足だった部分は Firefox 3 では修正されています。
どういうことかというと、id:javascripter が書いている、MDC の注意書きでは動かないはずのコード(ドット無しでメソッド名を文字列リテラルで呼び出すコード)は Firefox 2、Firefox 3 のどちらでも動きます。
ですが、MDC の注意書きの参考リンクにあるBug 371033 – Universal support for noSuchMethod の報告のコード(ドット無しでメソッド名を変数参照で呼び出すコード)を試すと、 Firefox 2 だとエラーになりますが、Firefox 3 だと正常動作します。言葉で説明するよりコード見た方がわかりやすいと思います。

var a={
  __noSuchMethod__:function(id,args){
    console.log(id,args);
  }
}
// id:javascripter のコード
a["y"](); // これは Firefox 2 でも 3 でも O.K. 
// 以下、バグ報告にあるコード
var name='x';
a[name](); // Firefox 2 だと "a[name] is not a function"

つまり、ドット無しでメソッドを呼び出す場合、メソッド名が変数参照だと __noSuchMethod__ が動かないバグがあったが、Firefox 3 がリリースされる過程で修正されたということ(バグ報告自体は fixed になっていないのですが、関連するバグの修正で修正された可能性が高い)だと思います。
MDC は今現在編集できないので、編集可能になりしだい問題の記述を削除しておきます。
削除しました。リンクも旧形式だと上手くリダイレクトされないので更新。