FXEvaluator その後のその後

ここで書いた FXEvaluator のバグの話。

javafx.jp の ML で James GoslingJavaFX でプレゼンしたということを聞いたので、さっそく見てみました。

Goslingのblog

ソースは結構単純。でも、あまりお手本にはならないようなコードです ^ ^;;

まぁ、それはそれとして、自作プレゼンツールの Caribe を全然触っていないなぁと思い出したわけです。

で、ちょっと FXEvaluator のバグを調べてみたのですが、ある現象に気がつきました。

var script = "import javafx.scene.*;\n"
"import javafx.stage.*;\n"
"Stage \{\n"
"    scene: Scene \{\n"
"        width: 100\n"
"        height: 100\n"
"    \}\n"
"\}\n";

FXEvaluator.eval(script);

このスクリプトは実行時に AssertionError が発生するのですが、下のスクリプトは大丈夫なのです。

var script = "import javafx.scene.*;\n"
"import javafx.stage.*;\n"
"var scene = Scene \{ width: 100 height: 100 \}\n"
"Stage \{\n"
"    scene: scene\n"
"\}\n";

FXEvaluator.eval(script);

ようするにオブジェクトの生成を入れ子にしなければ大丈夫なんです。なんでなんだろう?

原因はよく分からないのですが、とりあえず JIRA に登録したバグ にコメントしようと思っています。