原因不明のreturn not in function/syntax error

環境

Ubuntu 11.04 Firefox5.0 Firebug入り

発端

Javascriptのテストのためにテキトーな書き捨てのHTMLを作成し、そこからインポートして実行しようとしたところ、不可解なエラーに襲われた。いろいろ調べたところ、コメントの近くでエラーが出ている。
さらにいろいろ試してみたところ、なんとなく「日本語のコメント」がエラーを招いている様子。

解決

http://www.doevery.com/Diary/2008/01/ie-javascript-utf8.html
こんなページを見つけ、もしやと思い、テキトーな書き捨てのHTML

<meta content="text/html" charset="utf-8" http-equiv="Content-Type"/>

を追加したところ、きれいにエラーはなくなった。Chromeでは大丈夫なんだけどな。

エラーの例

//のコメントの次の行の解釈がおかしくなる

//関数についての説明
function example(i){
	var ret_value = i+1;
	return ret_value;
}

→return not in function 関数exampleも定義されていないと見なされてしまう

function example(i){
//関数についての説明
	var ret_value = i+1;
	return ret_value;
}

→ret_value is not defined

/**/コメントで日本語の直後に*/を書くとおかしくなる

/*関数についての説明*/
function example(i){
	return i+1;
}

→unterminated comment 関数exampleも定義されていないことに

対処

その1:面倒がらずにContent-typeを書く

<meta content="text/html" charset="utf-8" http-equiv="Content-Type"/>

その2:コメントを

/*
  コメント
*/

の形で記述する。


どっちが楽かの判断はお任せします。書き捨てのプログラムで変にはまると凹みますね。