日記帳

日記です。

Rhino 1.6R7 を gcj でコンパイル

Rhino 1.6R7 を gcjコンパイルしてみました.

Rhino 1.6R6 でいろいろと機能追加があったようです.R7はバグフィックスのみ.

1.6R6での主な変更として機能追加が3つ.JavaScript 1.5 相当にするため機能追加のようです.

  • strict モード追加
  • getter と setter
  • const キーワードの追加


strict モードは -strict オプションで有効になって宣言していない変数などへの代入などがチェックされて警告が出るようになるモードです.

getter, setter はオブジェクトのプロパティへのアクセスが透過的にメソッド呼び出しになるというあれです.

% cat property.js
var obj = {
	_age : 0,
	get age()
	{
		print("get age()");
		return this._age
	},
	set age(value)
	{
		print("set age(" + value + ")");
		this._age = value
	}
}

print(obj.age);
obj.age = 20;
print(obj.age);
% rhino property.js
get age()
0
set age(20)
get age()
20

こんな感じでプロパティへのアクセスの記述でメソッドが呼ばれます.まぁ普通に便利ですね.

const はそのまんま定数の宣言です.

% cat const.js
const a = 10
print(a)
a = 20
print(a)
% rhino const.js
10
10

書き換えしようとしても何も起りません.エラーも警告も出ません.

% rhino -strict const.js
10
10

strict モードでも警告なしですか…これでいいのかしら?