UserScriptからのみ使える関数定義などの仕組み

http://subtech.g.hatena.ne.jp/secondlife/20060925/1159181124

ちょっと質問なのですが、この Array.prototype 拡張が適用されるのってどのタイミングなのでしょうか?通常の html のロード時にすでに書き換わってると既存の JS コードで問題が発生する場合があります。Scripts/*.js が適用される直前タイミングなら問題ないのですが…。というか自分で確認しろよという話が>おれ


せっかくなのでちゃんと説明すると、UserScriptは汚染を防ぐために匿名関数に包んでいると思いますが、
fubでは読み込んだuser.jsファイル毎に中身を「(function(){」〜「})();」で再度匿名関数に包んでいます。
その際末尾の「})();」の前に本体側で突っ込みたいGM互換関数等を入れています。
なのでページ側の空間を汚染することは無いと思います。(違ってたらツッコミ入れてください)


また、上記仕組みからuser.jsの行数より大きい行番号でエラーが出ている場合は、本体側が突っ込んだ
コード内でエラーが出ていることになりますので、その際は作者にご相談ください。
最初の「(function(){」の末尾に改行コードを入れず、本体が勝手に追加するスクリプトは末尾に付けることで、
エラー行番号はずれないようにしているつもりです。