JavaScriptで擬似ヒアドキュメント

今度は、JavaScriptで、sleepとかヒアドキュメントとかやる方法を
ききにいきたいので、できるようにしておいてください!おねがいします!

http://d.hatena.ne.jp/Hamachiya2/20070215/devsum

というのをみて、
「関数内にコメントで書いて、arguments.callee.callerでごにょごにょっとやればできんじゃない」と思って、以下のようなのを作ってみました。

function heredoc(tag) {
  var regexp = new RegExp("\\*+"+tag+"$[\r\n]+^((.|[\r\n])*)$[\r\n]+^.*"+tag+"\\*+\/","m");
  return arguments.callee.caller.toString().match(regexp)[1];
}
(function () {
  /**HERE
ほげほげ
ふがふが
ぽよぽよ
もげもげ
  HERE**/

  alert(heredoc("HERE"));
})()

けどこれ完全にIE限定だし*1、関数の中じゃないと使えなし、id:brazilさんが6ヶ月前に到達した地点であって激しく既出だしと、踏んだりけったりでした。

ちなみに、FirefoxならXML式(E4X)を使ってそれっぽいこともできるみたい。
http://d.hatena.ne.jp/brazil/20060512/1147427737

*1:Firefoxは関数オブジェクトになった時点でコメントは全部捨てられちゃうのでcallee.callerで参照できない。